以后的课程可能会涉及到这个知识所以在这里给大家讲解下,我只知道公式具体的算法我不明白。但通过例题相信大家都很快会搞懂
在计算机系统中,数值一律用补码来表示(存储)
(1)正数的补码:与原码相同。
例如,+9的补码是00001001。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
例如 -9 的补码是1 111 0110+1
=1 111 0111
根据补码求原码:
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取
反,然后再整个数加1。
例1: 9-8
9-8 实质等于 9+ (-8) 计算机中所有的减法都作加法
9 是正数他的补码是他本身 0000 1001
-8是负数 最高位取1 其他位取8的绝对值的按位逆反(就是每一位相反) +1
8 的二进制表示是 0001000 按位逆反= 1110111 再+1= 1111000 再 加最高位1
那么-8 表示为1 1111000
9+-8= 0000 1001 (+)
1111 1000
= 1000000001 因为最高位超过 8位(一内存单元可存储的容量所以被舍弃)
最终= 000000001 再因为最高为是1 是正数9(正数的补码等于他本身) 所以 结果=1
例二: 7-9 实质等于 7+(-9)
7为正数 补码为 0000 0111
-9为负数 补码为 1111 0111
相加= 11111110 因为最高位为一所以是负数 除最高位其余为按位反转=10000001 再+1= 100000010(最高位1代表他是负数)所以 = -2
这些东西全手打 写出来既是帮助大家 也是把自己曾经学过 却有些以往的东西再巩固一遍
只要我有时间我会多写些 这类对入门者有帮助的东西! |