我对二进制不是很了解,今天去看了一些补码的资料,写了一些笔记用于回顾,可能会有一些地方理解得不到位,希望路过的朋友看到后能帮我指出,万分感谢。
1.数字在计算机中的储存
大家都知道,数字在计算机中是以二进制的形式(补码)进行储存的,最高位作为符号位(最高位为0时是正数,反之则为负数)。假设计算机字长为4,那么,【0011】表示的就是3,【1011】则表示-3;
2.如何获取一个数的补码
我们首先得知道,正数的源码补码和反码是一样的。负数的补码则是原码变成反码(最高位不变,其余取反)之后再+1。
3的原码【0011】,反码【0011】,补码【0011】。
-3的原码【1011】,反码【1100】,补码【1101】。
3.补码的几个特点
4.补码的运算
假设我们现在有两个数 X 和 Y ,计算机字长为4.
1.补码加法
[X+Y]补 = [X]补 + [Y]补
当 x = 2,y = -3 时 .
[X]补 = 【0010】,[Y]补 = 【1101】.
0010
+ 1101
-------------
1111
[X+Y]补 = 【1111】,[X+Y] = 【1001】,x + y = -1.
当 x = -2,y = 3 时 .
[X]补 = 【1110】,[Y]补 = 【0011】.
1110
+ 0011
-------------
0001
[X+Y]补 = 【0001】,[X+Y] = 【0001】,x + y = 1.
2.补码减法
[X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补
当 x = -2,y = 3 时 .
[X]补 = 【1110】,[-Y] = 【1011】,[-Y]补 = 【1101】.
1110
+ 1101
-------------
1011
[X+Y]补 = 【1011】,[X+Y] = 【1101】,x - y = -5.