计算机基础存储结构

常用高级编程语言的数据类型通常有

  1. bool        占用1位。(理论上)
  2. byte        占用2个字节。
  3. short       占用2个字节。
  4. int           占用4个字节。
  5. long        占用8个字节。
  6. float        占用4个字节。
  7. double    占用8个字节。

byte类型表示范围为0~2^16-1。既可以用数字0~2^16-1表示也可以用字符表示)。

short类型表示范围为-2^15~2^15-1。

int类型表示范围为-2^31~2^31-1。

long类型表示范围为-2^63~2^63-1。

以上是整数型的存储范围,整数型的存储结构直接换算为2进制即可。

float类型有4字节。32位。其2进制表示为。

  0    00000000    0000000 00000000 00000000.

 符号位   指数位        尾数位

其中第一位为符号位表示数值的正负。

后8位表示-127的指数位。

后23位表示尾数位。

这里举个例子。如-13.75。

13=(1101)。

.25=(.11)。

合起来为1101.11这就是有效尾数位。然后末尾不足24位补0补齐24位。1101.11000000000000000000。

将小数点往左移3位后砍掉第一个1.得1011100000000000000000。因此指数位得3+127=130=‭10000010。(补充左移动N位就相当于除以2的N次方,所以=指数位。)

因为-13.75是负数,符号位为1.符号位+指数位+尾数位=1100000101011100000000000000000=-13.75。

反解析。

1 10000010 1011100000000000000000。

10000010 -127=3。

尾数位前补1位为11011100000000000000000。

从补的1向后移动3位1101.11000000000000000000。

解析1101=13.

0.11=0.75.

首位为1所以是负数。为-13.75。

这里解释下.11000000000000000000为0.75的原因是:0.11是2^-1+2^-2=0.75. 换个公私为:S= 2^(-(2^n)),其中n为索引,从0 开始。S= 2^(-(2^0))+2^(-(2^1))=2^-1+2^-2=3/4 = 0.75。

猜你喜欢

转载自www.cnblogs.com/Gxqsd/p/10630786.html
今日推荐