二进制是计算技术中广泛采用的种数制,是用0和1两个数码来表示的数据,例出小写字母a在Windows系统中的二进制数据就是01100001。每个二进制位就是0和1的两种状态,它的基数为2,进位规则是“逢二进一“ 借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本都是二进制系统。
由于计算机只能识别二进制数据,而人们很难看懂“1010”代表什么,因此,需要将二进制数据转换为人们能够方便识别的字符,这时就需要设置字符编码。通过字符编码找到相应的字符集进行“翻译” ,这个字符集可以看作一本字典。 Windows 系统最原始的字符编码就是ASCII,该编码对应ASCII字符集,它支持英文中常用的字母、数字和标点符号等与二进制数据之间的转换,同时还提供八进制、十进制和十六进制的对应编码,各种编码都可以相互转换。
下面使用Windows系统的计算器演示二进制数据和十进制数据间的转换。
首先找到Window系统中的计算器,计算器的标准形式如下图所示。
在计算器中选择“查看”——>“程序员”命令,会跳转到程序员使用的计算器,如下图所示。
在上图中,可以看到二进制、八进制、十进制、十六进制等选项,当前选中为二进制,只能使用按钮0或者按钮1,单击按钮,输人1100001选择十进制选项,如下图所示。
从上图中可以看出,二进制数据1100001可以转换为十进制数据97,在ASCII码表中,二进制1100001和十进制的97都对应小写字母a。
随着计算机的不断发展,计算机进入了全世界的各个国家,这些国家使用的语言不一致,ASCII字符集已经不能满足需求,所以各个国家针对自己的语言制定了不同的字符集。每个字符集包含的字符个数不同,目前常见字符集有ASCII字符集、GB2312 字符集、BIG5 字符集、GB18030 字符集、Unicode 字符集等。
二进制数据和乱码有着密不可分的关系,乱码是指计算机二进制数据在转换字符的过程中,使用了不合适的字符集,而造成的部分或所欲字符无法被阅读,产出空白或者输出一系列字符。
下篇文章将提供一个案例使读者更直观地了解二进制数据和乱码。