分数的原码 补码 反码?急 50分求答案

来源:百度知道 编辑:UC知道 时间:2024/07/13 06:31:57
-35/64 23/128 -127
前面2个是分数 分别求他们的原码 反码 补码 要过程。。。
急着要 谢谢

数值有正负之分,计算机为了存放负数,就用一个数的最高位存放符号(0为正,1为负),计算机里就出现了正零和负零现象。如果用1个byte来写,正零是00000000,负零是10000000.正零不等于负零了。为了使涉及负数的运算不出错,想出了反码和补码。

负数,除符号位外的其余各位逐位取反就产生了反码(0取1,1取0)
负数的补码就是反码加一。
正数的原码反码补码是一样的。

小数怎么变补码和反码?先要化成二进制原码。再看小数如何表示。
如果用定点小数,则最高位是符号位,接下来是小数最高位,从原码到补码,反码的做法同上面说的整数做法一样。
如果用浮点数,阶码部分为8位补码定点整数,尾数部分为24位补码定点小数。
阶码部分有一位阶符位,表示指数的符号,其余阶码表示幂次。
尾数部分,数符表示尾数的符号位、其余尾数表示规格化后的小数值
-35/64=-0.546875
二进制:0.546875*2=1.....0.09375
0.09375*2=0......0.1875
0.1875*2=0......0.375
0.375*2=0......0.75
0.75*2=1.....0.5
0.5*2=1......1
-0.546875=1.1000011
反码:1.0111100
补码:1.0111101
算了 不知道对不对,不费劲了 累

计算机里面不能直接表示分数,需要将分数化成小数,然后在将十进制转化成二进制,方法是小数点以前的除基(二进制是2)求余倒排列。小数点后的乘基取整正排列。然后将二进制重右向左找到第一个1然后左边的依次求反得补码,补码减1得反码!

-35/64=-(32/64+0/64+0/64+0/64+2/64+1/64)=-0.1000110,所以原码是11000110,反码为10111001,补码为:10111010。