1+1=10:认识二进制
(图源:pixabay)
问,一加一在什么情况下不等于二?
这可不是个脑筋急转弯,答案也不一定是在算错的情况下。因为在二进制中,一加一有了新的意义。
我们通常使用的计数方式被称为十进制,简单来说就是遵循“逢十进一”的法则。你在数学课上一定学过,每个数字从右往左分别是个位、十位、百位……左侧数位所表示的是其右侧数位的10倍。每一个数位上都可能出现0~9这十个数字中的任意一个。如果想表示的数字大于了9,就需要进位到更高的数位。
这在你看来,这可能是很理所当然的运算规则。可二进制的世界里,一切都会不同,或者说,简单许多。让我们参照着上文对十进制的介绍,来初识二进制吧!二进制所遵循的是“逢二进一”的法则。它也包含有不同数位,但是左侧数位表示的是相邻右侧数位的2倍。在每一个数位上只会出现0和1这两个数字中的任意一个,如果表示的数字大于1,就要向更高的数位进位。让我们再次回到1+1的运算,相加结果是2,遵循着逢二进一的规则,此时需要进位。所以运算的结果为10,不过它不读“拾”,读作“一零”。
有这样一种说法,因为我们有十根手指,所以习惯于十进制的运算。那么二进制运算呢?它是为谁服务的?答案是计算机。计算机由一系列电子元件组成,其中所储存的各式各样信息——无论数字、图像、音乐、视频或者是程序,对计算机来说最终都会被翻译为电路的状态。就像手机有开机和关机两种状态、电灯有点亮和熄灭两种状态。从本质上说,所有的电路都包含有“连通”和“断开”两种相反的状态——刚好对应二进制中的“1”和“0”。
于是,计算机中的一串串电路被转化为由0和1组成的数字,它们就是计算机的两根手指,帮助计算机完成运算,实现功能。二进制算法最初由著名的数学家莱布尼兹发明,英文为binary digit,据此,人们用bit来表示计算机中的一个数位,也就是你常听说的“比特”。
不过,对于计算机来说,它处理和存储信息的最基本单位并不是比特。一个比特的数据不足以承载信息,计算机采用了相对更大的一个单位——字节。它的英文为byte,用字母B表示。每个字节由8位比特组成。一个字节刚好能放下一个数字或者一个英文字母,目前国际通用的ASCII字母表,就是一个通用的大字典,通过它可以查到每个数字和字母所对应的8位二进制数字。每个中文汉字则会占据2个字节的空间。
因此,你常听说的电脑内存或是硬盘的容量,也都是以字节(B)为单位的,更常见的是容量更大一些的KB、MB或者GB。在二进制换算体系中,1KB含有1024个字节,依此类推,1MB是1KB的1024倍,即 1MB=1024KB。
参考资料:
https://www.techopedia.com/definition/2678/binary-digit-bit
https://www.computerhope.com/jargon/b/bit.htm
作者:比邻星
审稿:于颖卓,中科院地理科学与资源研究所博士