作业帮 > 数学 > 作业

Java二进制正数强制转换byte后变负数的问题.

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/05/06 09:51:59
Java二进制正数强制转换byte后变负数的问题.
为何
byte binVal4 = (byte)0b11101001;
溢出后变成了-23?
这个变化的过程可否详细说下?
Java二进制正数强制转换byte后变负数的问题.
0b11101001
正好8位一个字节,第一个位是符号位.
整型数在计算机中用补码存储的.
所以由补码11101001求原码
(负数求原码除了符号位,其他位依次取反最后加一,或者先减一再取反,结果一样的)
得到原码10010111 就是 -23.