定点数
定点数就是指小数点的位置固定不变,小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效值位之后 比如:100.)和定点小数(纯小数,小数点在最高有效数值位之前 比如:.101)。
浮点数
浮点数是小数点位置不因定的数,它能表示更大范围。在浮点表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数,浮点灵敏的表示格式如下:
阶符 | 阶码 | 数符 | 尾数
浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度由尾数决定。为了充分利用尾数来表示更多的有效数字,通常采用规格化浮点数。规格化浮就是将尾数的绝对值限定在区间[0.5 , 1]。当尾数用补码表时,需要注意如下问题。
1. 若尾数 M >= 0 ,则其规格化的尾数形式为 M=0.1xxxx……x, 其中 x 可为 0 或 1。即尾数限定在[0.5 , 1]之间。
2. 若尾数 M < 0 ,则其规格化的尾数形式为 M=1.0xxxx……x,其中 x 可为 0 或 1。即尾数限定在[-1,-0.5]之间。
3. 工业标准IEEE 754
S | P | M
其中,S为数的符号位,为0时表示正数,为1时表示负数;P为阶码,通常用移码表示;M为尾数,用原码表示。
目前,计算机中主要使用三种形式的IEEE 754 浮点数,在IEEE 754 标准中,约定小数点左边隐含有一位,通常这位数就是1。
参数 单精度浮点数 双精度浮点数 扩充精度浮点数
浮点数字长 32 64 80
尾数长度 23 52 64
符号位长度 1 1 1
阶码长度 8 11 15
指数偏移量 +127 +1023 +16383
可表示的实数范围 10^-38~10^38 10^-308~10^308 10^-4932~10^4932
例如:
十进制的 123.456 用IEEE754 单精度浮点二进制表示。
首先分别转换整数跟小数部分
整数部分:
十进制 123 = 二进制 1111011
小数部分:
十进制 456 = 二进制 01110100101111000 110
123.456 转 IEEE754 单精度浮点数二进制为:
符号位 阶码 尾数
0 10000101 11101101110100101111000
说明:
符号位
因为此数为正数所以为0。
阶码
IEEE 754 标准 把小数点移至最高有效位后,即指数为 6 ,再加上 指数偏移量 127 (等于 133) 那么阶码(移码)的二进制为 10000101 。
尾数
单精度浮点数只保留23位尾数即多余的尾数去掉,即原码 11101101110100101111000
123.456 转 IEEE754 单精度浮点数二进制为:
0 10000101 11101101110100101111000
IEEE 754 浮点数 十进制转二进制 WEB工具 URL:
http://babbage.cs.qc.edu/IEEE-754/Decimal.html