byte的取值范围-128~127原理 admin 2023-02-20 20:39:02 篇首语:本文由小编为大家整理,主要介绍了byte的取值范围-128~127原理相关的知识,希望对你有一定的参考价值。 我们都知道byte为8位二进制数据,最高应该是11111111,为255(10进制)。但是为什么byte的取值范围为-128~127呢? 因为不管是Int类型还是byte类型,当用二进制定义整数时候,其最高位是符号位。如此01111111代表byte范围正数的最大值127,11111111代表byte范围最小值-127才对。如此发现还是不对! 经查资料得知,计算机内存是以二进制补码的形式保存所有的数据的。 原码:直接将一个数值转换为二进制数。最高位是符号位。 负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。 负数的补码:其反码加1. 而正数的原码,反码,补码都相同。 观察其公式,写几个例子 正数: +8的原码为00001000 反码为00001000 补码为00001000 +9的原码为00001001 反码为00001001 补码为00001001 负数 -9的原码为10001001 反码为11110110 补码为11110111 -8的原码为10001000 反码为11110111 补码为11111000 可得知规律值,原码,补码,不管是正数还是负数,值与补码同步加减1. 因此,计算机byte存值补码值01111111,因为正数三码合1,所以补码对应的原码数字也为01111111转为十进制是127。如果127+1,补码值同步+1,会循环到00000000值为0正数最小了。所以byte范围的最大值127。 以上可知byte范围最大值是127,那推测最小值是不是-127呢。我们拿-127去计算 原码为11111111, 反码(取反)为10000000, 补码(反码+1)为10000001 可知-127的存值补码为10000001。 根据规律可推断出-128的补码值为10000000,-129的补码值为11111111。 而拿补码11111111反推导(-1并取反)得原码为10000001,发现它其实是-1的补码,而不是-129,因此byte范围的最小值为-128。 以上是关于byte的取值范围-128~127原理的主要内容,如果未能解决你的问题,请参考以下文章 ettercap工具之arp欺骗 [转]Nginx负载均衡原理初解 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号