
二进制数 原码为101011,它的反码和补码是?怎么求啊? 二进制数 补码为101011,它的原码是什么呢?
记住,以下是原码和补码互换的(负数),正数的补码反码和原码是一样的,这个你应该知道吧
(唯一的,也是独特的)规则如下:从数的右边往左开始数,遇到“0”不理它,直到遇到第一个“1”为止,以后的每一位数取反即是它的原码或补码,符号位不变,还是“1”(补码的补码是原码)
如原码:11010100 ----- 从右往左数,第一位是0,不理它,第二位还是0不理它,第三位是1,那么从此以后的每位取反,即为它的补码了。 答案为:10101100
看懂了吗?
你的题目:101011 (求补码) 从右往左数,第一位是1,那么,以后每位都取反,来吧,跟我来,倒数第一位是1,倒数第二位是0(因为要取反了),倒数第三位是1,倒数第四位是0,倒数第五位是1,第六位是符号位,还是1。。。那么,最后的结果就是:110101
它的反码当然只是求反而已了(除符号位之外的其它各位都取反即可),答案为:110100
补码为101011,那么它的原码是什么?
按照我刚说的,补码的补码就是原码了。对这个数求补试试看。
会吗?一样的。从可往左数,倒数第一位是1,那么以后每位都取反就成它的原码了(因为这个数是一个补码),答案就是:110101
说完了,不懂再问吧。
虽然,计算机使用二进制数,但是,在进行算术运算时,二进制数,也是数,并不是“什么码”。
二进制数,和十进制数是雷同的,只不过相加时,是逢二进一而已。而十进制数相加,则是逢十进一。
如,一个十进制数的加法:27 + 99 = (一百) 26。
但是,你如果弄丢了进位(一百),也就是减去了 100,此时,你加上 99,它也就是:-1 !
此时的加法,就成了减法:27-1 = 26。
同理,+98,也就是:-2 。
。。。 。。。
就是说:【舍弃了进位,正数就可以当负数、加法就是减法】!
这个规律,在二进制时,也是成立的。
8 位 2 进制数的进位是:2^8 = 256,当你舍弃了进位,+255 (1111 1111),就是-1、1111 1110 (254),就是-2、1111 1101 (253),就是-3 。。。 这就是补码!
补码,是来自于“舍弃进位”。 补码并非是什么:机器数真值符号位原码反码取反加一符号位不变符号位也参加运算。。。
求负数(-X)的补码,你一定能推导出公式:[-X ]补码 = 2^n - X。
其实,在小学学过“求补数”的公式:补数 = 10^n - 原数。
两者是雷同的。
例如:-31 的 8 位补码是多少啊?
求解:2^8-31 = 225 = 1110 0001 (二进制补码)。
求补码,就是这么简单,根本就用不着想什么:原码反码取反加一。