JavaのbyteとかBigIntegerとかのお話

今の時代なら、デフォがBigDecimalで問題ない!
1
なぎせ ゆうき @nagise

Javaで8bitとか16bit演算する場合にintの上位bitを使う方式はどうか、とか考えたがイマイチっぽい http://d.hatena.ne.jp/Nagise/20091209/1260376316

2009-12-10 01:36:43
Taro L. Saito @taroleo

@nagise Javaの偉いところはintを符号+31bitで表現できる数と「定義」したところにあると思うのだけれど、整数の範囲を無制限にしたRubyはもっと偉かったというか

2009-12-10 01:43:35
t_yano @t_yano

@nagise Java 7でバイナリ演算がサポートされるそうですぜ(まだ未決定だけど、今の段階で出ているのは可能性が高い) *P3

2009-12-10 01:45:45
なぎせ ゆうき @nagise

@taroleo Javaは96年における現実的な判断をしたのでしょう。BigDecimalのようなデータ型を言語として標準の整数型としてしまえ!と判断するには微妙な時期だったかも。あ、でもRubyも95年12月発表なのか。

2009-12-10 01:46:12
t_yano @t_yano

3/2が1.5じゃなくて1なのが気持ち悪い、と言われた話を思い出すなあ *P3

2009-12-10 01:46:45
なぎせ ゆうき @nagise

@t_yano そんなのもあったんですか。気づかなかったな。バイナリデータをごりごりやる人には評判悪かったですもんね

2009-12-10 01:47:23
Taro L. Saito @taroleo

@nagise Javaの偉いところはintを符号+31bitで表現できる数と「定義」したところにあると思うのだけれど、整数の範囲を無制限にしたRubyはもっと偉かったというか

2009-12-10 01:43:35
t_yano @t_yano

@nagise int演算の結果値がBigDecimalだったら気持ち悪いだろ、と思うのは古いですかねえ。。 *P3

2009-12-10 01:48:09
t_yano @t_yano

byte処理が死ぬほどめんどくさいのは同意。というかネットワークにもとから強かったんだから、byte、しかもunsigned byteの演算がたくさん必要になる可能性については考えるべきだったんじゃね? と思う。 *P3

2009-12-10 01:49:19
なぎせ ゆうき @nagise

@t_yano デフォルトで整数が全部BigIntegerでいいんじゃないですか。intの範囲で問題ないと明確に分かるところだけ主導でマーキングしてintにするようなのが富豪的でフェイルセーフな現代的感性なのかな、と思うのだけども。

2009-12-10 01:50:50
なぎせ ゆうき @nagise

型システムに思いをめぐらせると、データ型については「格納可能」とOOP的なisA関係は継承階層で逆方向を向くところが悩ましいと言うかなんというか

2009-12-10 01:52:34
t_yano @t_yano

@nagise intという型が、数値の大きさによって適切なバイナリ値に縮小や拡張をする、というのがいいかなーと思ったことはある。BigDecimalの領域に至っても型としてはintのままで、裏で最適化している。しかしこれでは、ハードウェアに近い操作をするときに死にそう *P3

2009-12-10 01:54:56
なぎせ ゆうき @nagise

16bitのshort型での演算操作はint型で代替可能であるからOOP的にintはshortのサブクラスとして設計可能だが、データ長的にはintはshortに収まらない

2009-12-10 01:56:43