[size=large]
java中的byte数值范围是 -128 - 127
-0=-128
负数在计算机中保存的形式是负数的补码形式
所以(1111 1111)补码 =(1000 0001)原码 = -1
(1000 0000)补码 =(1000 0000)原码 = -128
补码的出现是由于用原码来表示减法的时候运算不正确
所以先把两个数都转化为补码形式,然后再做加法运算
请看下面的例子
60-(70)=-10
(0011 1100)原码
- (0100 0110)原码
= (1111 0110)原码= -118 原码
(0011 1100)补码
+ (1011 1010)补码
= (1111 0110)补码= -10 原码
请看示例代码
[/size]
java中的byte数值范围是 -128 - 127
-0=-128
负数在计算机中保存的形式是负数的补码形式
所以(1111 1111)补码 =(1000 0001)原码 = -1
(1000 0000)补码 =(1000 0000)原码 = -128
补码的出现是由于用原码来表示减法的时候运算不正确
所以先把两个数都转化为补码形式,然后再做加法运算
请看下面的例子
60-(70)=-10
(0011 1100)原码
- (0100 0110)原码
= (1111 0110)原码= -118 原码
(0011 1100)补码
+ (1011 1010)补码
= (1111 0110)补码= -10 原码
请看示例代码
package com.zuzu.des;
public class JavaByte {
public static void main(String[] args) {
byte b = 0;
for (int i = 0; i <= 0xff; ++i) {
b = (byte) i;
System.out.println(" " + i + ":" + b + ", ");
}
}
}
[/size]