11010100 2에 대해 비트를 이동하려고 하면 결과가 10101000 2 가 아니라 110101000 2 가 됩니다.
int a = Integer.parseInt("11010100", 2) << 1;
나는 이것을하려고합니다.
int a = (byte)(Integer.parseInt("11010100", 2) << 1);
그러나 출력 값이 128보다 크면 모든 것이 마이너스가되어 논리적입니다. 비트 수를 변경하지 않으려면 어떻게해야합니까?
32 비트 길이의 정수를 사용하고 있습니다. 결과가 8 비트로 잘릴 것으로 예상되는 이유는 무엇입니까?
—
jhamon
바이트 a = ...가 해결됩니다.
—
Perdi Estaquel
int
s 또는long
s 에서 수행됩니다 .