第二章 二进制
前言
上一节介绍了布尔运算的基础,我们现在有了真和假,但是只有两个值是没有办法完成复杂的运算的,这也是计算机的根本问题,我们已经将真和假代表了1和0,那么像十进制一样,左边位上的数字都比相同的右边的位上的数字大10倍,像22,代表了210+2,同理,带入2进制,左边位上的数字是右边的2倍,比如11,21+1*1
–
一、字节和位
上述提到的二进制数0110,其中的0,1,1,0每一个数字代表一位。
而在当时,有很多物品会以此命名,8位计算机,8位图,8位音乐,因为它使用的过于频繁,因为也提出了一个通用的单位,字节的概念。
一个字节等于8位
即
1Byte = 8Bit
同时也延申出了其他单位
1MB = 1024Byte
1GB = 1024MB
二、数据的表示
仅仅八位是很难满足大家的需求的,所以我们经常听到的都是32位或者是64位的计算机。
32位可以表示的最大数是43亿左右,这个数据下的不管是图片还是音乐,质量都相对较高。
但日常生活中不止有正数,还有负数,浮点数等,所以这里涉及到了不同数据的表示。
1.负数
首先是负数,常用的方法就是将第一位数字设置为符号位,1代表负数,0代表正数,也就是有31位来表示数据的大小。
1000 0000 0000 0000 0000 0000 0000 0001 代表-1
0000 0000 0000 0000 0000 0000 0000 0001 代表1
2.浮点数
浮点数,也就是小数,在数学中也是相当有用的。
在数学中我们一般叫它科学计数法。
比如0.625 , 表示为625*10^(-3)。
在第一位我们存储符号,在之后的8位存储指数,后边的23位存储有效数字。
3.字母
说够了数学,那剩下就是语言,信息不止是数字,还要有语言,如果只是ABCD……,那只需要26个数字,也就是12345……就可以,但是还需要,?!一系列的符号。
这里就有了ASCII ,它是7位代码,可以存储128个值。
比如a用97表示,A用65表示,它甚至有换行符的表示。
通过ASCII,就可以实现不同计算机的互通。
这种能力也称为"互用性", Interoperability。
这种表示方法只有一种问题,就是只能服务于英语,其他语言使用的时候就会形成乱码。
为了解决这些问题,达到兼容的效果,Unicode应用而生,完成了统一编码方案,它有16位,可以完成所有字符,符号的表示。
总结
在本章节完成了对二进制在计算机中表示的介绍,包括各类数字以及字母,也同时介绍了ASCII以及Unicode这种统一标准。