2字节、4字节、8字节的有符号整数的取值范围

首先,字节(Byte):Byte就是字节,bit就是位

1 Byte = 8 bit

1 KB = 1024 Byte

1 MB = 1024 KB

1 GB = 1024 MB

简单了解字节和位之后,先来看一个最简单的例子,8位-无符号表示的最大最小值。

其中每一位都可填入0或1,

1位      二进制最大值为1       最大值就是1          (2^1)-1

2位     二进制最大值为11      最大值就是3          (2^2)-1

3位     二进制最大值为111    最大值就是7          (2^3)-1

......

所以如果是8位无符号的最大值就是1111 1111,最大值是255,即就是 (2^8)-1。

    然而有符号只是在此基础上让8位中的第一位充当符号位,0代表正数,1代表负数。

  符号位

0正、1负

相当于变成了7位有效位,那么

8位有符号的最大值就是0111 1111,最大值是+127,即就是 (2^7)-1,

8位有符号的最小值就是1000 0000,最小值是-128,即就是 -2^7,

注意:这里为什么是 -2^7,而没有减1,是因为正数方向是从0开始的,0~127,共128个数字;

而负数方向没有0,因为实际上没有正0和负0的区分,只有一个0,如果负数方向也从0开始就相当于把0算了2次。在计算机中,默认把0归属于正数方向,所以负数方向就是从-1即就是1000 0001开始的,-1 ~ -128,也是128个数字。另外,默认规定1000 0000(负0)就是-128,因为7位有效位不可能表示出128。

        所以有了简单的基础之后,我们如法炮制就可以得出2字节、4字节、8字节分别对应的有符号数的最大值和最小值。

有符号数:2字节(16位)

十进制 二进制
  最大值 (2^15)- 1   32767 01...1 //0后面15个1
  最小值       - 2^15 - 32768 10...0 //1后面15个0

有符号数:4字节(32位)

十进制 二进制
  最大值 (2^31)- 1   2147483647 01...1 //0后面31个1
  最小值       - 2^31  -2147483648 10...0 //1后面31个0

有符号数:8字节(64位)

十进制 二进制
  最大值 (2^63)- 1   数字很大 01...1 //0后面63个1
  最小值       - 2^63   数字很大 10...0 //1后面63个0

-----------------------------------------------------------------------------------------------

本篇完

你可能感兴趣的:(数据结构)