Java 移位位,它是从哪里来的?

Java 移位位,它是从哪里来的?,java,bits,Java,Bits,我的问题是,0从何而来?从Integer.toBinaryString返回的字符串中没有前导零。0xFFFF中有16个1s,但也有16个0s Output: test1 1111111111111111 test2 11111111111111110 然后左移1表示零有效 00000000 00000000 11111111 11111111 // 16 printed 此值转换为二进制ASCII数字字符串(基数2),无额外的前导0 从Integer.toBinaryString返回

我的问题是,
0
从何而来?

Integer.toBinaryString
返回的
字符串中没有前导零。
0xFFFF
中有16个
1
s,但也有16个
0
s

Output:
test1 1111111111111111
test2 11111111111111110
然后左移1表示零有效

00000000 00000000 11111111 11111111  // 16 printed
此值转换为二进制ASCII数字字符串(基数2),无额外的前导0


Integer.toBinaryString
返回的
字符串中没有前导零。
0xFFFF
中有16个
1
s,但也有16个
0
s

Output:
test1 1111111111111111
test2 11111111111111110
然后左移1表示零有效

00000000 00000000 11111111 11111111  // 16 printed
此值转换为二进制ASCII数字字符串(基数2),无额外的前导0



它来自
a您是否询问'0'位是否来自某个特定的寄存器或变量或任何东西,例如它有时可能是'0'或'1'?Ofc.,它来自移位,但是我想知道.0x1ffe怎么也等于test2
int
是一种用4个字节表示的数据类型。它来自
a您是否会问“0”位是否来自某个特定的寄存器或变量或其他什么,有时可能是“0”或“1”?Ofc,它来自移位,但我想知道.0x1ffe怎么也等于test2
int
是一种用4个字节表示的数据类型。如果一个十六进制数由16位数字组成,为什么会有16个0?一个
int
是4个字节,相当于32位,相当于8个十六进制字符(每个十六进制字符4位)。你可以说
inta=0x0000FFFF
。有没有办法将其转换为二进制,但要向我显示所有的0?你总是可以从32中减去字符串的长度,然后打印出那么多的0。我认为除了串联之外还有其他方法。如果十六进制数由16位数字组成,为什么会有16个0?一个
int
是4个字节,相当于32位,相当于8个十六进制字符(每个十六进制字符4位)。你可以说
inta=0x0000FFFF
。有没有办法将其转换为二进制,但要显示所有的0?您总是可以从32中减去字符串的长度,然后打印出那么多的0。我想除了串联还有其他方法。