71的原码反码补码怎么求
解:首位数字表示正负不做变(1为负数,0为正数)反码:1110010(正数反码等于原数,题中为负数,则除首位数对应取反)补码:1110011(得出反码数基础上末位加一)原码:0110011(补码符号位第一位数字取反)
反码为数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。
补码为一种用二进制表示有号数的方法,也是一种将数字的正负号变号的方式。
原码(又叫增码)为符号位取反的补码,一般用指数的移码减去1来做浮点数的阶码,引入的目的
是为了保证浮点数的机器零为全0。
扩展资料
计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
-123的移码
-123的原码是11111011,反码是10000100,补码是10000101,移码是00000101.
127的移码怎么表示
127的移码表示方法如下
127=2^7-1D
=1111111B
得到127的二进制真值是1111111。
如果用八位二进制编码,因127是正数,它的原码、反码、补码都是01111111。而移码是将补码的最高位置反,因此127的八位移码是11111111。
为什么正数的原码反码补码移码是一样的
正数的原码、反码、补码和移码是一样的,这是因为在计算机中,正数的最高位是0,表示正数。在原码表示中,正数的符号位为0,其余位表示数值部分。在反码和补码表示中,正数的符号位仍然为0,其余位与原码相同。
原码表示是最直观的表示方法,但在进行加减运算时不方便。为了解决这个问题,引入了反码和补码表示。反码是将原码中除符号位外的每一位取反得到的,补码是在反码的基础上加1得到的。
移码表示是为了解决补码中的符号位参与运算时的问题。移码表示是将补码中的符号位取反得到的。由于正数的符号位为0,取反后仍然为0,所以正数的移码与原码、反码、补码是一样的。
因此,正数的原码、反码、补码和移码都是一样的。
移码,通常用在浮点数的阶码中,可用补码求移码的规则是:
算机中的移码
移码(又叫增码)是符号位取反的补码,一般用做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0。
①移码的定义:设由1位符号位和n位数值位组成的阶码,则[X]移=2En+X-2n≤X≤2n
例如:X=+1011[X]移=11011符号位“1”表示正号
X=-1011[X]移=00101符号位“0”表示负号
②移码与补码的关系:[X]移与[X]补的关系是符号位互为相反数(仅符号位不同),
例如:X=+1011[X]补=01011[X]移=11011
X=-1011[X]补=10101[X]移=00101
③移码运算应注意的问题:
◎对移码运算的结果需要加以修正,修正量为2En,即对结果的符号位取反后才是移码形式的正确结果。
◎移码表示中,0有唯一的编码——1000…00,当出现000…00时(表示-2En),属于浮点数下溢。
浮点数的运算规则
1、浮点加减法的运算步骤
设两个浮点数X=Mx※2ExY=My※2Ey
实现X±Y要用如下5步完成:
①对阶操作:小阶向大阶看齐
②进行尾数加减运算
③规格化处理:尾数进行运算的结果必须变成规格化的浮点数,对于双符号位的补码尾数来说,就必须是
001×××…××或110×××…××的形式
若不符合上述形式要进行左规或右规处理。
④舍入操作:在执行对阶或右规操作时常用“0”舍“1”入法将右移出去的尾数数值进行舍入,以确保精度。
⑤判结果的正确性:即检查阶码是否溢出
若阶码下溢(移码表示是00…0),要置结果为机器0;
若阶码上溢(超过了阶码表示的最大值)置溢出标志。
例题:假定X=0.0110011*211,Y=0.1101101*2-10(此处的数均为二进制)??计算X+Y;
解:[X]浮:010101100110
[Y]浮:001101101101
符号位阶码尾数
第一步:求阶差:│ΔE│=|1010-0110|=0100
第二步:对阶:Y的阶码小,Y的尾数右移4位
[Y]浮变为0101000001101101暂时保存
第三步:尾数相加,采用双符号位的补码运算
001100110
+000000110
001101100
第四步规格化:满足规格化要求
第五步:舍入处理,采用0舍1入法处理
故最终运算结果的浮点数格式为:010101101101,
即X+Y=+0.1101101*210
2、浮点乘除法的运算步骤
①阶码运算:阶码求和(乘法)或阶码求差(除法)
即[Ex+Ey]移=[Ex]移+[Ey]补
[Ex-Ey]移=[Ex]移+[-Ey]补
②浮点数的尾数处理:浮点数中尾数乘除法运算结果要进行舍入处理
例题:X=0.0110011*2E11,Y=0.1101101*2E-10
求X※Y
解:[X]浮:010101100110
[Y]浮:001101101101
第一步:阶码相加
[Ex+Ey]移=[Ex]移+[Ey]补=1010+1110=1000
1000为移码表示的0
第二步:原码尾数相乘的结果为:
010101101101110
第三步:规格化处理:已满足规格化要求,不需左规,尾数不变,阶码不变。
第四步:舍入处理:按舍入规则,加1进行修正
所以X※Y=0.1010111※2E+000
7/16的原码,反码,补码
十进制分数原码和补码可以先将分子和分母分别表示成二进制数,然后计算出二进制小数:7/16=0111B/2^4=0.0111B4/16=0100B/2^4=0.0100B这样求出小数的原码、反码、补码就容易了。希望能明白!!