整型

作者: mago_dg | 来源:发表于2019-01-01 18:46 被阅读0次

    整型

    整型: 没有小数,包含负数,不同平台不会改变其取值范围分为以下4种

    类型 字节数 取值范围
    int 4 -2^{31} - (2^{31} - 1)
    short 2 -2^{16} - (2^{16}-1)
    long 8 -2^{64} - (2^{64}-1)
    byte 1 -2^8-(2^8-1)

    向下转型时候如果超出了对应的取值范围数据会丢失精度比如byte v = (byte) 129;

    1字节 = 8位
    取值范围公式(n为位数): -2^n-(2^n-1)

    为什么最大值为 2^n-1 而不是 2^n 呢?首先来了解下二进制,原码,补码,反码的概念帮助我们理解。

    二进制

    无论是图形图像,电子设备,传输数据归根到底都是 0 与 1 的信号处理。当前的计算机系统使用的基本上都是二进制,数据在计算机中主要是以补码的形式存储的。

    举个列子,我们常用的十进制数据与二进制数据的对应关系

    二进制 = 十进制 转换如下

    1 = 1,10 = 2,100 = 4,1000 = 8,11000 = 24

    11 = 3 等同于 1*2^0+1*2^1=3

    10 = 2 等同于 0*2^0+1*2^1=2

    转换其它进制类似就不一一举例了

    原码、反码、补码

    正数的原码补码反码是其一样的
    负数的原码是正数原码符号为改为1; 反码是除了符号位其余各位取反;补码是其反码末尾加1的结果,
    我们以一个byte为列1byte = 8位(首位符号位,0正1负)

    正负类型 原码 反码 补码 数值
    最大值 01111111 01111111 01111111 2^0+2^1+2^2+...+2^6=127
    最小值 10000000 11111111 1000000 1*2^7=128

    我们由补码由此反推出byte取值区间为[-128,127]

    相关文章

      网友评论

          本文标题:整型

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