
二进制介绍
计算机中所有的数据都是以二进制的形式存在的,即用0和1两个数码来表示所有的数据。例如,有0~9共10个十进制数,对应的二进制数如图5.1所示,其他数依此类推。

图5.1
为了区别不同的进制数,我们一般需要标记该数的进制,如有十进制数9,可表示为(9)10,相对应的二进制数即为(1001)2。

图5.2
为什么计算机要用二进制来存储数据呢,因为二进制最容易实现,如图5.2所示,有一张存储视频的CD光盘,左图的螺旋形轨道光盘表示存储的视频数据,右图是CD光盘在显微镜下显示出来的一个个的“坑”。我们将有坑的地方表示为1,没有坑的地方表示为0,这就是CD光盘用二进制格式存储数据的方法。
同理,计算机使用的磁盘是经过磁化的,只要将磁化的位置表示为1,未磁化的位置表示为0即可,电路的开和关也可以表示成0和1两种状态。
如图5.3所示,位图图像(bitmap)是由称作像素的单个点组成的。若将黑色方块表示为1,将白色方块表示为0,即可将该图按行列顺序转化为由“1”和“0”两种数字组成的一个长数字串。

图5.3
像a、b、c、d这样的52个字母(包括大写),以及0、1等数字还有一些常用的符号(例如*、#、@等)统一规定了这些符号用哪些二进制数(以十进制数表示)来表示,这就是美国标准化组织出台的ASCII编码表,如表5.1所示。
表 5.1

可以看出,字符‘A‘对应的数字是65,字符‘a‘对应的数字是97,进一步地,每一个小写字母比它相应的大写字母的ASCII码大32。
二进制的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
二进制加法共有四种情况:
0+0=0
0+1=1
1+0=1
1+1=10个位进位为1
二进制减法共有四种情况:
0–0=0
1–0=1
1–1=0
10–1=1
【例5.1】求(1101)2+(1011)2的和。
解:

任务 【题5.1】试用纸和笔计算(1111)2+(11111)2的值是多少。