作者:初夏mx | 来源:互联网 | 2023-09-18 22:58
问题0:
1 2 3 4 5
| //编程语言为java
//这句话会报告类型不兼容,可能修饰精度的编译错误
byte b = 0x80;
//这句话则不会提示任何错误
byte b = 0x70; |
问题1:
0x80我们用通常的二进制(不涉及补码)的形式表示应该是1000 0000,请问这里二进制中的1是符号位吗(因为我猜想上述问题可能和符号位有关。。。)?
问题2:
如果byte b = -10; 系统是先检查-10的正负性然后计算补码并存储在计算机中吗?还是说“正数的补码是本身,负数的补码是取反+1”这句话本身只是一个规律性的总结所以不能这么理解?
问题3:
如何解释-2 和 4294967294 其实在内存类保存的都是0xFFFFFFFE