Ank*_*kit 4 java range primitive-types
根据 docs.oracle.com:-
byte:字节数据类型是一个 8 位有符号二进制补码整数。它的最小值为 -128,最大值为 127(含)。字节数据类型可用于在大型数组中节省内存,其中内存节省实际上很重要。它们也可以代替 int 使用它们的限制有助于澄清您的代码;变量范围有限的事实可以作为一种文档形式。
字节 - 8 位
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
128 64 32 16 8 4 2 1)
将所有这些数字相加,我们得到总共 255。那么 -128 到 127 的范围是如何计算的。它是在某个地方硬编码还是在这个范围内有更多的技术性?
任何建议,将不胜感激。
让我们计算 1 个字节的范围
它是有符号类型,这意味着它的范围仍然是 255(正如您正确计算的那样),但它从 -128 开始。因此,范围的一半低于零,1 个可能的数字是 =(零),其余 127 个数字高于 0。
第一位是符号。(1 - 负,0 - 正)
小智 5
范围计算公式为:-2^(n-1) 到 (2^(n-1)-1)
其中 n = 否。原始数据类型的位。例子:
对于 int 数据类型,n 是 32,简而言之,n 是 16 等。
所以,int 范围将是:-2^(32-1) 到 (2^(32-1)-1)
通过使用相同的公式可以计算字节、短、浮点和双精度的范围。