Byte如何存储表示整数的?它的范围如何确定?

文章详细阐述了Java中Byte类型如何使用补码表示二进制数,包括正数和负数的补码转换规则。Byte类型有8位,其中最高位为符号位,剩余7位表示数值,因此可以表示-128到127之间的整数。通过举例说明了从最小正数到最大负数的补码形式。
摘要由CSDN通过智能技术生成

Byte 的范围是怎么确定的?

前提:Java用补码表示二进制数,byte 最高位是符号位,剩余七位是数字。

补码怎么得到:

正数补码就是本身

负数补码是符号位除外,对原码取反,然后整体末位加1。

补码转换示例:

+3  二进制是 00000011, 补码也是00000011

-3 负数,符号位是1,byte二进制表示是 10000011,反码除符号位外其余取反,得到111111100,补码在反码基础上整体加1,得到11111101。

Byte为8位,最高位是符号位,剩下七位为数值位。一共有 128+128=256种二进制的表示可能。就是用最高位的0(正)、1(负)表示符号,剩余七位(从0-127)表示绝对值,共有+(0-127)和-(0-127),共256种表示可能。

所有的可能表示的数据如下:

正数的话,符号位为0,那么可以表示的正数为 0-127

0  补码是 00000000

1  补码是 00000001

127补码是01111111

负数的话,符号位为1,那么可以表示的正数为 (-0)-(-127)

-0   原码 10000000  反码11111111 补码 1 00000000(byte只能识别8位,那么当计算机看来就是00000000,和前面表示+0的0000000重合,而日常中没有-0,所以就表示-128)

-1   原码 10000001  反码1111110 补码 11111111

-127 原码 11111111  反码10000000 补码 10000001

所以byte的数据类型的一个字节表示的数据如下:

0    补码是 00000000

1    补码是 00000001

127  补码是 01111111

-127 补码是 10000001

-1   补码是 11111111

-0   补码是 1 00000000(就是-128)

所以如果给了一个byte的补码,那么从小到大(00000000-11111111)

依次为0-127、(-127)-(-1)、-128.

Byte的存储的数字,表示的范围依照二进制的填充方式,以最高位位符号位,的到从0-127,再从-127到-1,最后超出的-128,相同的是无论正负都是从小到大排列。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值