计算机中常用的数据表示形式:定点数、浮点数。
一、定点数
定点数:小数点的位置固定不变 分为定点定点整数和定点小数
1、定点小数(纯小数):小数点隐含固定在最高数据位的左边,所以整数位就是最高位用来表示符号位
计算机中存储为 1010111(第一位1为符号位,表示负数)
实际含义:-0.010111
2、定点整数(纯整数):小数点隐含固定在最低数据位的后边,最高位用来表示符号位
计算机中表示: 10101110
实际含义: -0101110.
二、十进制浮点数转二进制
整数部分:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序
小数部分:乘以2,然后取出整数部分,将剩下的小数部分继续乘以2,然后再取整数部分,一直取到小数部分为零为止。如果永远不为零,则按要求保留足够位数的小数,最后一位做0舍1入。将取出的整数顺序排列。
例如:28.625
整数部分:28我们可以按照公式,也可以直接用计算器 0001 1100
小数部分:0.625*2=1.25 ; 0.25*2=0.5; 0.5*2=1.0 ;按照公式 小数部分=101
28.625=11100.101
三、浮点数
1、浮点数(实数):小数点的位置由阶码确定,是浮动的
在计算机中通常把浮点数N分成阶码和尾数两个部分;N=尾数*基数^阶码 (尾数是一个规格化的纯小数,基数就是2(二进制),阶码就是小数点移动的位数)
例如:11100.101
- 尾数=0.11100101
- 阶码=5(小数点向左移动5位)=0000 0101
N=尾数*基数^阶码
- 11100.101=0.11100101*2^5=0.11100101*2^101
- 尾数=0.11100101
- 基数=2
- 阶码=5(小数点向左移动5位)
2、浮点数在计算机中的表示:
例如:在16位虚拟机中,阶级码占5位,尾数占9位,数符、阶码各占一位,则28.625在16位计算机中的存储格式?
解题:
先将28.625转二进制浮点数表示:28.625=11100.101 =0.11100101*2^101
尾数:0.11100101
阶码:101
- 阶码部分101 不足5位:补零 00101
- 尾数部分不足9位:补零 111001010