Java 中整数的最大值是 2147483647,因为 Java 整数是有符号的,对吧?
An integer's max value in Java is 2147483647, since Java integers are signed, right?
0xff000000 的数值为 4278190080.
0xff000000 has a numeric value of 4278190080.
但我看到这样的 Java 代码:
Yet I see Java code like this:
int ALPHA_MASK = 0xff000000;
谁能赐教?
高位是符号位.设置它表示一个负数:-16777216.
The high bit is a sign bit. Setting it denotes a negative number: -16777216.
与大多数语言一样,Java 以 2 的补码 形式存储带符号的数字.在这种情况下,从 0x7F000000 或 2130706432 中减去 231 或 2147483648,得到 -16777216.
Java, like most languages, stores signed numbers in 2's complement form. In this case, subtracting 231, or 2147483648 from 0x7F000000, or 2130706432, yields -16777216.
这篇关于为什么 Java 能够将 0xff000000 存储为 int?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何检测 32 位 int 上的整数溢出?How can I detect integer overflow on 32 bits int?(如何检测 32 位 int 上的整数溢出?)
return 语句之前的局部变量,这有关系吗?Local variables before return statements, does it matter?(return 语句之前的局部变量,这有关系吗?)
如何将整数转换为整数?How to convert Integer to int?(如何将整数转换为整数?)
如何在给定范围内创建一个随机打乱数字的 intHow do I create an int array with randomly shuffled numbers in a given range(如何在给定范围内创建一个随机打乱数字的 int 数组)
java的行为不一致==Inconsistent behavior on java#39;s ==(java的行为不一致==)
意外结果导致长/整数除法Unexpected result in long/int division(意外结果导致长/整数除法)