字节--浅谈字节(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30625315/article/details/83659372

接上面的那个【字节–编程题】


byte:字节,由8位的二进制组成;
在计算机中,8位带符号二进制数的取值范围是【-128,127】,Java中,byte的取值范围也是【-128,127】。

这块涉及到计算机组成原理的原反补码,计算机中数字的计算和存储都是用的补码。
原码:最高位是符号位,‘0’表示正,‘1’表示负,其余位以二进制的形式表示数值的大小;
反码:正数的反码与其原码相同;负数的反码,除符号位不变,其他位取反;
补码:正数的补码与其原码相同;负数的补码实在其反码的末位加1。

所以,字节编码可以是负数。

	public static void main(String[] args) {
		 int a = 444;
		 byte b = (byte) a;
		 System.out.println(b);
	}

解析:
int型是32位的二进制,即4个字节;
(444)原码 = (444)补码 = 0000…000110110010
int型数据(32位) 转换成 byte型数据(8位) 需要截断处理
得到:1011 0010
补码 1011 0010 = 原码 1100 1110 = -68

猜你喜欢

转载自blog.csdn.net/qq_30625315/article/details/83659372