事实上我们的计算机只认识0与1,记录的数据也是只能记录0与1而已,所以计算机常用的数据是二进位的。 但是我们人类常用的数值运算是十进位,文字方面则有非常多的语言,台湾常用的语言就有英文、中文(又分正体与简体中文)、日文等。 那么计算机如何记录与显示这些数值/文字呢?就得要透过一系列的转换才可以啦!底下我们就来谈谈数值与文字的编码系统罗!
数字系统
早期的计算机使用的是利用通电与否的特性的真空管,如果通电就是1,没有通电就是0, 后来沿用至今,我们称这种只有0/1的环境为二进位制,英文称为binary的哩。所谓的十进位指的是逢十进一位, 因此在个位数归为零而十位数写成1。所以所谓的二进位,就是逢二就前进一位的意思。
那二进位怎么用呢?我们先以十进位来解释好了。如果以十进位来说,3456的意义为:
特别注意:『任何数值的零次方为1』所以100的结果就是1罗。 同样的,将这个原理带入二进位的环境中,我们来解释一下1101010的数值转为十进位的话,结果如下:
= 64 + 32 + 0x16 + 8 + 0x4 + 2 + 0x1 = 106
这样你了解二进位的意义了吗?二进位是计算机基础中的基础喔!了解了二进位后,八进位、十六进位就依此类推啦! 那么知道二进位转成十进位后,那如果有十进位数值转为二进位的环境时,该如何计算? 刚刚是乘法,现在则是除法就对了!我们同样的使用十进位的106转成二进位来测试一下好了:
图3.1.1、十进位转二进位的方法
最后的写法就如同上面的红色箭头,由最后的数字向上写,因此可得到1101010的数字罗! 这些数字的转换系统是非常重要的,因为计算机的加减乘除都是使用这些机制来处理的! 有兴趣的朋友可以再参考一下其他计算计概论的书籍中,关於1的补数/2的补数等运算方式喔!