计算机网络概论-原码反码补码移码,及小数表示方法IEEE754

目录

原码

反码

补码

移码

小数表示方法(IEEE 754标准)


原码

定义:数值为X的原码记为[X]原,如果机器字长为n,则原码为

若X为纯整数,则[X]原 = \left\{\begin{matrix} X&&&&0\leqslant X\leqslant 2^{n-1}-1& \ 2^{n-1}+|X|&&&&-(2^{n-1}-1)\leqslant X\leqslant 0 \end{matrix}\right.

 若X为纯小数, 则[X]原 = \left\{\begin{matrix} X&&&&0\leqslant X\leqslant 1 & \ 2^{0}+|X|&&&&-1< X\leqslant 0 \end{matrix}\right.

如字长为8时,[+1]原=00000001,[-1]原=10000001;[+127]原=01111111,[-127]原=11111111

PS:其实这里有个简易记法:字长为几,码长(转为原码后的长度)为几,最高符号位(0为正1为负),其余二进制。(记住这个之后,后面的就很简单了!!!)

还不会二进制?点下面!

计算机系统知识-数值及其转换_wooovi的博客-CSDN博客https://blog.csdn.net/wooovi/article/details/122312320

反码

通俗的说,就是在负数原码的基础上最高位不变,其余位0改1,1改0。(正数反码和他的原码相同)

如字长为8时,[+1]反=00000001,[-1]反=11111110;[+127]原=01111111,[-127]原=1000000

补码

通俗的说,就是在负数反码的基础上将最低位+1(不要忘了进位)(正数补码和他的原码相同)

如字长为8时,[+1]补=00000001,[-1]补=11111111;[+127]补=01111111,[-127]补=1000001

移码

通俗的说,就是在原码的基础上,最高位符号位0改1,1改0。(这里正数负数都要改!!!)

如字长为8时,[+1]移=10000001,[-1]移=00000001;[+127]移=11111111,[-127]移=01111111

小数表示方法(IEEE 754标准)

目前计算机主要使用3种形式的IEEE 754浮点数

参数单精度浮点数双精度浮点数扩充精度浮点数
浮点数字长326480
尾数长度 P235264
符号位 S111
指数长度 E81115
最大指数+127+1023+16383
最小指数-126-1022-16382
指数偏移量+127+1023+16383
可表示的实数范围10^{-38}-10^{38}10^{-308}-10^{308}10^{-4932}-10^{4932}

补充:

1.浮点数表示法:二进制数N=2^{E}\times F,其中E称为阶码,F称为尾数

阶符(0正1负)阶码(指数)数符尾数

如二进制数可1011.10101写为2^{3}\times 1.01110101

2.规格化

1'若尾数M\geqslant0,则其规格化的尾数形式为M=0.1XXXX...X,其中,X可为0,1,即将尾数限定在[0.5,1]

2'若尾数M<0,则其规格化的尾数形式为M=1.0XXXX...X,其中,X可为0,1,即将尾数限定在[-1,0.5]

改写步骤:

1.将10进制数改为2进制数

2.将二进制数规格化

3.求阶码

例:176.0625

第一步:(176.0625)_{10}=(10110000.0001)_{2}

第二步:规格化10110000.0001 = 1.01100000001X2^{7},所以尾数为01100000001000000000000

第三步:求阶码,单精度浮点数偏移量为127,所以E=7+127=134,所以指数的移码表示为10000110

最后就得到0(符号)10000110(阶码)01100000001000000000000(尾数)

wooovi的博客_CSDN博客-笔记,C语言,中级软考领域博主https://blog.csdn.net/wooovi

欢迎您的关注!

如有转载,请注明出处(如不注明,盗者必究)


版权声明:本文为wooovi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。