本文介紹了為什么 Java 能夠將 0xff000000 存儲為 int?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
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模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!