問題描述
Java 中整數(shù)的最大值是 2147483647,因為 Java 整數(shù)是有符號的,對吧?
An integer's max value in Java is 2147483647, since Java integers are signed, right?
0xff000000 的數(shù)值為 4278190080.
0xff000000 has a numeric value of 4278190080.
但我看到這樣的 Java 代碼:
Yet I see Java code like this:
int ALPHA_MASK = 0xff000000;
誰能賜教?
推薦答案
高位是符號位.設(shè)置它表示一個負數(shù):-16777216.
The high bit is a sign bit. Setting it denotes a negative number: -16777216.
與大多數(shù)語言一樣,Java 以 2 的補碼 形式存儲帶符號的數(shù)字.在這種情況下,從 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.
這篇關(guān)于為什么 Java 能夠?qū)?0xff000000 存儲為 int?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!