首页 > 编程知识 正文

补码原码反码之间的换算,正数原码反码补码转换

时间:2023-05-05 11:40:13 阅读:200453 作者:3217

原码 反码 补码 之间在小数正数间的转换 基本转换

对于正数 原码等于反码等于补码(小数也一样)
对于负数 原码除了符号位取反即反码
反码基础之上+1即补码
但是在遇到某些题时候还是会混淆,比如三者在对+0,-0方面,
以及1.111 和1,111两者者的不同等 直接按机组课本的例题做例子

对0方面(对八位) ------原码反码补码+0000000000000000000000000-0100000001111111100000000

由图可知补码在+0与-0时候表示是一样的
平时也说过8位机器码范围是-128~127
就是因为前者对应这补码的10000000后者对应着补码的01111111
而对原码和反码其表示范围则是-127~127

基本以及分数(小数)转换

设机器字长为8位(含一个符号位),写出下列真值对应的原码反码以及补码

------原码反码补码1000,110 01000,110 01000,110 0100-871,101 01111,010 10001,010 1001

这是比较简单的转换 用平时学的除而取余法即可
转换和上面说的方法一样100的三者都一样 -87的三者都有差别
其次注意上面用的都是逗号 表示是整数
下面描述分数

------原码反码补码-13/641.001 10101.110 01011.110 011029/1280.001 11010.110 00100.110 0011

此处符号位与之后为点
那负数为例
-13/64 直接干就完了设置为【x】原=x0 x1 x2 x3 x4 x5 x6 x7 x8
x0是符号位所以x0绝对为1
至于后面的数如下图(xi都是0或1)
首先不管负号,2的-1和-2次方都比13/64大了所以不考虑所以x1,x2都是0,其实就是估那个数凑出能使等式相等就完了
上述的数都为1则等式左边为
1/2 + 1/4 + 1/8 + 1/16 + 1/32 + 1/64 + 1/128
等效 32/64 + 16/64 + 8/64 + 4/64 + 2/64 + 2/64 + 1/128

干就完了

补码整数以及小数对原反码的转换(4位为例) 补码反码原码真值补充1.11001.10111.0100-0.0100干就完了注意是小数即可0.11100.11100.1110+0.1110正数贼简单1.00001.1111无-1原码的局限性下同1,01011,01001,1011-11逗号表示是整数0,01110,01110,0111+71.00001.1111无+16

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。