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

一个字节表示的范围

作者: MikeShine | 来源:发表于2019-04-24 09:46 被阅读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.

    一图理解

    编码图

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

    相关文章

      网友评论

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

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