layout: post # 使用的布局(不需要改) title: 数据 # 标题 subtitle: #副标题 date: 2020-02-29 # 时间 author: ONLYUNIVERSE # 作者 header-img: img/post-bg-2015.jpg #这篇文章标题背景图片 catalog: true # 是否归档 tags: #标签 COM —
1.定点数
通常情况下,定点数用来表示纯小数或纯整数。
定点数的小数点位置固定不变,数据分为一位字(最左位)表示的符号位和其余位数表示的量值
定点数的表示范围为[1-2n,2n-1] (整数)或[2-n-1,1-2n] (小数)
2.浮点数
为了便于在相差较大的数据之间进行数值运算,需要对不同的数取不同的比例因子,这样一个数就分为了一个纯小数和一个比例因子,比例因子可以根据需要在一定范围内自由浮动。 任一二进制数N都可写为N=2e*M,其中e是指数(阶码),M是尾数。需要注意的是原码表示时,尾数的首位默认为1(尾数不为零时),所以这一位通常并不进行存储。
对于32位浮点数IEEE754规格化:第31位为符号位S,表示阶码的正负,0正1负;0至22位放置尾数M;23至30位放置阶码E,阶码由指数加上偏移值127形成;高位用零补齐。
另:E,M全为0时,定义真值为零
E全为1,M全为0时,定义真值为正无穷
浮点数的真值:N=-1S * 1.M * 2E-127
3.机器码表示
符号位:原码、反码、补码的符号位0正1负,移码的符号位1正零负
n代表数值位数
原码数值位:在真值的绝对值前加上符号位,表示范围(-2n,2n),(2-n,-2-n)
补码数值位:正数不变,负数按位取反,末位加一,表示范围[-2n,2n),[-1,-2-n)
反码数值位:正数不变,负数按位取反,(-2n,2n),(2-n,-2-n)
移码数值位:正数不变,负数按位取反,末位加一,(-2n,2n)
特别地:原码与反码中,零所对应的值有+0和-0,而在补码和移码中,零所对应的值始终为正值