分配原始最大值和最小值

时间:2015-12-30 17:11:52

标签: java binary max min primitive-types

要记住十进制中每个整数基元的最大值和最小值是非常困难的。二进制和十六进制并不困难。我知道包装类内置了这些值,但我喜欢使用二进制和十六进制。问题是我尝试

// value是byte value = 0x80; // 1000_0000

但它不起作用。但是(经过一些研究),

value = -0x80;

value =(byte)0x80;

两个都工作。我认为在为较小的整数基元分配文字时,不需要强制转换。二进制,八进制和十六进制值是否为文字,或者它们都是32位,因为它们不是十进制的?任何帮助理解正在发生的事情都是受欢迎的。

1 个答案:

答案 0 :(得分:0)

要记住最大值和最小值,请使用内置常量:

int iMax = Integer.MAX_VALUE;
byte bMin = Byte.MIN_VALUE;

在编译时评估二进制,八进制和十六进制值,就好像它们的十进制等效值被写入一样。一些例子:

byte b1 = 0b1111111; //OK (same as byte b1 = 127)
byte b2 = 0b10000000; //possible lossy conversion (compiler does not know if you tried to insert the byte -128 or the int 128)

int i1 = 0xFFFFFFFF; //OK
int i2 = 0xFFFFFFFFF; //too large to fit inside int