
补码+补码算出来是什么码
补码+补码,算出来的,还是补码。
所谓的补码,不过就是“二进制的补数”而已,并无多少新意。
你如果上过小学,就一定懂得“补数”:
● 若两数之和是 10、100、1000 … 10^n(n是正整数),这两个数就互为补数。
● 例如,6 和 4、99 和 1、455 和 545 等,都是互为补数。
● 求任意数 X 的补数,算法就是: 10^n - X。
(其实,270° 和 90°,也是“互为补数”的,只不过两数之和是周期 360° 。)
----------------------
利用补数,可转变运算方法。
两位十进制数的计数周期,是:10^2 = 100。 此时,+99 就能当做-1 !
随便一个加法:27 + 99 = 一百 26,若你丢了进位,就成了减法:27-1 = 26 !
丢了进位,就是减去了 100,再加 99,当然就是加上:99-100 = -1。
通用的运算规律:
● 舍弃了进位,正数,就能当做负数使用!
● 舍弃了进位,加法,就能完成减法运算!
代替负数的正数,当然就是:10^n-|负数|, 或者是:10^n + 负数。
----------------------
计算机使用二进制数。
八位二进制数的计数周期,是:2^8 = 256。
如果舍弃了进位,就是减去了 256。
此时,+255 (二进制 1111 1111),就是-1 了!
同理,+254 (二进制 1111 1110),就是-2;
。。。
最后,+128 (1000 0000),就是-128。
以上这些正数,就是计算机专家所吹嘘的“补码”了。
由此可知,所谓的补码,不过就是一个“二进制的补数”而已。也就是小学的知识点!
而且,补码,与计算机专业教材中所喋喋不休的“符号位原码反码取反加一符号位不变符号位也参加运算 ... ”,这一滩垃圾,也并无任何瓜葛。
怎么求补码呢?
显然就是:[ X ]补 = 2^n + X,n 是补码的位数。
例 1:-31 的 8 位补码是多少?
解 1:2^8-31 = 225 = 1110 0001 (二进制补码)。 完事!
例 2:+31 的 8 位补码,又是多少?
解 2:2^8+31 = 287 = (1) 0001 1111 (舍弃进位,只留 8 位)。 完事!
八位补码,与其等值的正负数,如下表所示:
注意:使用补码时,必须舍弃进位。
例 3:用 8 位补码计算 80-31 = ?
解 3:列竖式计算如下。
+80: 0 1 0 1 0 0 0 0
-31: 1 1 1 0 0 0 0 1
--相加-----------
进 1 、0 0 1 1 0 0 0 1
舍弃进位,只留下 8 位数,即:0011 0001 = +49。
这就用补码的加法,完成了减法运算。
由这个例题可知:
● 所谓的补码,也是一个完全正常的数字,并非是“什么什么码”。
● 所以,也就不必关心“最高位是符号位”,当然更不用想“符号位也参加运算”。
● 补码的计算,只要按照正常二进制数的加法规则“逢二进一”即可。
● 只是在最后,舍弃了进位,这就能得到“减法运算”的结果了。
而原码和反码,都没有这种功能。
所以,在计算机系统中,数值,一律采用补码表示和存储。
计算机,既不使用原码反码,也不保存它们。
因此,所谓的“取反加一”,计算机也是无须实现,而且也是无法实现的。
----------------------
老外的数学水平之低,大家都知道的。 况且,在二战期间,这些计算机专家显然也没有接受过系统的教育。
什么是计数周期? 什么是进位? 舍弃进位会怎样? 什么是补数? 怎样求补数?
这些计算机专家都是一窍不通的。
万般无奈,才编造了“符号位原码反码补码正数三码相同负数取反加一符号位不变”这一套骚操作!
我们的计算机老师,数学水平也是很洼的,这么简单的小题也弄不懂!
这些个计算机专家教授博导,竟然跟老外去学着做小学的算术题!
甚至还把“符号位原码反码取反加一”列为了考研的内容。
而应该强调的【舍弃进位】,他们却是只字未提。
盲目的跟风,一门心思的往坑里跳,也不知道忽悠瘸了多少硕士博士。。。
哦,如果你没有上过小学,也不懂什么是补数,就不用看这些了。你还是跟着老外去做取反加一吧。
凑字数.............