2011-07-06 6 views
0

バイト(2*x*x)+x(xは1バイト)で次の操作を実行する必要があります。私はintのために行うのと同じように、その操作を直接実行できますか?上記の操作をどのように行うことができない場合。*演算子を直接使用して2バイトを直接乗算できますか?

+1

あなたはそれを試しましたか? – Kevin

+0

'^'シンボルとは何ですか? ** XOR **(プログラミング表記法)か** **力**(数学記法)ですか? – SteeveDroz

+0

はい、私は直接試しました。しかし、出力が正しいかどうかはわかりません。 – Pramod

答えて

2

あなたは次のことを試しましたか?

byte x = 
int f = 2 * x * x + x; 

練習として、すべての可能性のあるバイト値の結果を出力し、期待値が得られるかどうかを確認することをお勧めします。 256の可能なバイト値しかありません。

+0

はい、私たちはコンパイラが何をしてもオブジェクトには反応しません。しかし、私の疑問は、出力が正しいかどうかです。 – Pramod

+0

バイトが署名されていると仮定すると、すなわち-128と127の間で、答えは正しいでしょう。 –

1

はい。

Java整数演算は2つの補数です。つまり、値を書き留めるのに十分なビットがある限り、フィールドの長さを短くしたり短くしても結果には影響しません。

注1:オーバーフローがないか確認してください。結果が128/-127の範囲にない場合は、バイト(または符号なしの場合は255/0)に収まりません。

注2:浮動小数点と倍精度浮動小数点は整数演算の一部ではありません。

0

コンパイラが許可するので演算子が存在すると思われますが、JVMが結果を正しく計算するとは思われません。どうして?

これはテストするのがどれくらい難しいですか?バイトにはそれぞれ256個の値しかありません。

関連する問題