两个说法都没有错,我们举个例子来看看就明白了:
1、10001的补码是取反后在再加1,也就是11110+1=11111;
2、如果是11111变回原码呢?我们可以采取逆过程先减1,11111-1=11110,再取反变为10001;
3、如果要是在补码变原码时先去反再加一呢?(就是问题中的说法)结果为11111先取反为10000,再加1,10000+1=10001.这个结果与2是一样的,并且也是和1中的原码相吻合.
通过上述例子可以看出,无论是原码变补码还是补码变原码,都可以采取先取反再加1的方法.至于原因是很容易想通的.
按照正常思维来想的话,补码变成原码应该是原码变补码的逆过程,也就是2步中的方法.但是我们可以思考一下,如果我们没有按照2步中的方法而是先去取反了呢?先取反得到的结果和2步的结果有什么差异呢?答案是差了1,2步中是先减1才取的反,而直接取反的话,就没有减1.
接着请注意,在取反前减1和在取反后加1的效果是一样的.这就和-3-1=-(3+1)是一个道理.
所以问题中的说法没有错误.
原码与补码的转换
原码与补码的转换
[-3]反=[10000011]反=11111100
原码 反码
负数的补码是将其原码除符号位之外的各位求反之后在末位再加1.
[-3]补=[10000011]补=11111101
原码 补码
也就是说原码转换成补码是先原码 反码 最后+1成补码.
那么补码转换成原码呢?我看了个视频有点迷惑.
是怎么说的:
由于计算机内部通常用补码来表示二进制数.
正数的补码为自身,对于负数来说,需要将补码转换成原码.
转换的过程分2步:
1.要将这个2进制数所有位反转.
2.第二步是在它的末尾加1
一个是补码转换成原码,一个是原码转换成补码.
到底哪个错了呢?还是都是对的?
一个是教学视频
第4章 7.整型概述 观看时间为中间 时间不长
[-3]反=[10000011]反=11111100
原码 反码
负数的补码是将其原码除符号位之外的各位求反之后在末位再加1.
[-3]补=[10000011]补=11111101
原码 补码
也就是说原码转换成补码是先原码 反码 最后+1成补码.
那么补码转换成原码呢?我看了个视频有点迷惑.
是怎么说的:
由于计算机内部通常用补码来表示二进制数.
正数的补码为自身,对于负数来说,需要将补码转换成原码.
转换的过程分2步:
1.要将这个2进制数所有位反转.
2.第二步是在它的末尾加1
一个是补码转换成原码,一个是原码转换成补码.
到底哪个错了呢?还是都是对的?
一个是教学视频
第4章 7.整型概述 观看时间为中间 时间不长
其他人气:252 ℃时间:2020-02-05 04:46:06
优质解答
我来回答
类似推荐
猜你喜欢
- 14又7分之6等于7分之几
- 2两数相乘,若被乘数增加14,乘数不变,则积增加84;若乘数增加14,被乘数不变,则积增加168.原来的积是多少
- 33X平方是先求3X还是先求X平方
- 4平行四边形的易变性在生活中的应用
- 5做一根5米长的长方体空心铁管,他的横截面是边长为1.5分米的正方形,至少要用()平方分米的铁皮
- 6What ___ me most was that he didn't pass the exam
- 7甲做180个机器零件与乙做240个机器零件所用的时间相同,已知两人一小时共做70个机器零件,每人每小时各做多少个机器零件?
- 8划分句子成分括号中的 1.What (language)does she speak?2.I like g0ing t0 the m0vies
- 9设三个互不相等的有理数,即可表示为1,a+b,a的形式,又可表示为0,a/b,b的形式,求a的2010次幂+b的2009次幂
- 10有鸡字的成语