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 + ", ");
		}
	}
}

评论
发表评论

您还没有登录,请登录后发表评论

cddcdd
搜索本博客
我的相册
B9566f88-badc-389f-928e-c4503178482d-thumb
1111
共 2 张
最近加入圈子
存档
最新评论