本文介绍了为什么Java能够将0xff000000存储为int?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Java中的整数最大值是2147483647,因为Java整数是有符号的,对吧?
0xff000000的数值为4278190080。
然而我看到这样的Java代码:
int ALPHA_MASK = 0xff000000;
任何人都可以指导我吗?
解决方案
高位是一个符号位。设置它表示负数:-16777216。
与大多数语言一样,Java在形式。在这种情况下,从0x7F000000或2130706432中减去2 或2147483648,得到-16777216。
An integer's max value in Java is 2147483647, since Java integers are signed, right?
0xff000000 has a numeric value of 4278190080.
Yet I see Java code like this:
int ALPHA_MASK = 0xff000000;
Can anyone enlighten me please?
解决方案
The high bit is a sign bit. Setting it denotes a negative number: -16777216.
Java, like most languages, stores signed numbers in 2's complement form. In this case, subtracting 2, or 2147483648 from 0x7F000000, or 2130706432, yields -16777216.
这篇关于为什么Java能够将0xff000000存储为int?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!