美文网首页
一个字节表示的范围

一个字节表示的范围

作者: super_2e20 | 来源:发表于2020-12-02 16:01 被阅读0次

这是大计基学的东西,主要在于编码和存储。编码那部分之前讲过了。关于不同编码的介绍
先要理解一下这里基础的前提:

  1. 在计算机内部数据的存储和运算都采用二进制;
  2. 计算机中数据分为有符号数和无符号数,对于有符号数,计算机规定用最高位来表示符 号。“0”表示正数,“1”表示负数;
  3. Java中的数据都是有符号数;
  4. 计算机中带符号的整数都是使用二进制的补码。

从计算机存储,补码的角度理解

这里8bit表示有符号数。0正1负。
对于正数。最大数为:01111111 = +127,并且由于正数补码是自身,所以存储在计算机中也是
01111111。
对于负数,能表示的最小二进制是 10000000。但是这个是存储在计算机中的补码,求原码为:10000000,换算成十进制,就是128,符号位前移,即为-128。

从二进制发明的角度理解

其实一切都在于对0的处理。
在二进制中,一个+0表示为:00000000;一个-0表示为:10000000。这样就会有两个0,所以从一开始二进制发明的时候,就规定: -0 为 -128,按照补码的规则(如上面),刚刚是ok的。所以最终 -128~127.

一图理解

image

最终结论是 -2^bit ~ +2^bit-1

作者:MikeShine
链接:https://www.jianshu.com/p/a28d1d62f516
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

网友评论

      本文标题:一个字节表示的范围

      本文链接:https://www.haomeiwen.com/subject/kkhuwktx.html