11010100 2のビットをシフトしようとすると、結果は10101000 2ではなく110101000 2になります。
int a = Integer.parseInt("11010100", 2) << 1;
私はこれをやろうとします:
int a = (byte)(Integer.parseInt("11010100", 2) << 1);
しかし、出力値が128より大きい場合、すべてがマイナスになり、これは論理的です。ビット数が変わらないようにするにはどうすればよいですか?
32ビット長の整数を使用しています。なぜ結果が8ビットに切り捨てられると思いますか?
—
ジャモン
バイトa = ...修正します。
—
Perdi Estaquel
int
sまたはlong
sで行われます。