我有一个关于在java中初始化byte的问题,我想初始化一个字节值allBitsOne,并且它的所有位都是1:
方法1:
byte allBitsOne = 0xFF;
错了,它说0xFF是一个整数类型并且超出了字节范围,所以我就像下面这样做
方法2:
byte allBitsOne = (byte)0xFF;
工作正常。
方法3:
byte allBitsOne = 0xFFFFFFFF;
它的工作正常,但如果0xFF
超出一个字节的范围,为什么不0xFFFFFFFF
?
谢谢大家,我发现了这个:link
答案 0 :(得分:4)
byte是有符号整数类型,从-128到127。
0xFF是255,所以它大于127。
0xFFFFFFFF为-1,因此它在字节类型的范围内。
答案 1 :(得分:1)
字面整数是32位数字,因此:
0xff
是一个整数类型,等于255,超过了字节的限制。
0xffffffff
是一个整数类型,等于-1,它不超过字节的限制。
答案 2 :(得分:1)
java中java中的byte-variable可以保存-128到127之间的值。 如果你想将所有位设置为1.那么你可以将-128存储到它。