java byte最小值_JAVA byte最大值是127,最小值确实

计算机-原码

就是二进制定点表示法,即最高位为符号位:“0”表示正,“1”表示负,其余位表示数值的大小。

该数字不进行其他操作时数字最原始的二进制表示,对于原码来说,绝对值相等的正数和负数只有符号位不同。

计算机-反码

正数的反码与其原码相同;

负数的反码是对其原码逐位取反,但符号位除外。(只需要将原码除符号位以外的位数取反,即0改为1,1改为0)

计算机-补码

正数的补码与其原码相同;

负数的补码是在其反码的末位加1。

计算机-为什么会有反码和补码

有人会有疑惑为什么要用反码,补码,不直接用原码呢?

先搞清楚一点反码、补码、原码是针对二进制数而言,计算机若用原码相加减,正数加正数不会出错,然而正数和负数原码相加就会出错。说白了,补码、反码就是为了简化减法而来的,将减号化为负数后再将负数化为补码求加法,就跟正数没关系了!

不管是正整数还是正小数,原码,反码,补码都全部相同。计算机中所有数都是以补码形式存储的。

1.10+(1)时:1010 + 0001 = 1011,即11。

2.10+(-1)时:00001010 +10000001 = 10001011 ,即-11。(原码参与加法运算)

3.10+(-1)时:00001010 +11111111 = 00001001,即 9。(补码参与加法运算)

各位看官,能看明白不?

JAVA中的正数、负数

JAVA中用补码表示二进制数

byte的最大值

正数原码,由于最高位只能是0,因此最大值为:0 111 1111,即127。

byte的最小值

负数原码,由于最高位只能是1,因此最小值为:1 111 1111,即-127,我擦,那哪来的-128呢?

这里有个问题即0,是属于正数呢,还是属于负数呢?:+0表示为:00000000,-0表示为:1000000。

因为最高位是符号位不算在里面,所以就会有两个0,所以从一开始发明二进制的时候,就把-0规定为-128,如此二进制的补码就刚好在计算机中运作中吻合。(这里就是把最高位符号位,既是符号位,又是最高位,因此这里的1既代表是负数,又代表2^7次方)

总结

2^8=256,即能有256个数字,包括最高位是0和1的情况,

最高位是1和0即正数和负数平分一下,就是正负各 128 个值,

相当于-127到-0,0到127,这样正负数各128个,

由于-0算成最小负数,负数没有少,所以负数是128个

由于正数的0没有了,正数少一个,所以正数是127个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值