8421码
8421码即BCD码,由于人们习惯日常使用十进制数,而计算机处理时使用的是二进制数,而两种数制相互转换十分麻烦,因此产生了8421码映射关系。其映射运算例如:
1001转化为十进制数9:1*8+0*4+0*2+0*1 = 8+0+0+1 = 9
而8421分别为每组数从左到右每一位的权值,即每一位数在向十进制数转化过程中乘的数,而8421码的每一位都是0或1,共两种状态,则四位数共有4^2 = 16种状态,8421取前十种状态作为自己的映射组。
8421码的加法运算:
如
十进制: 8 + 3 = 1 1
8421码:1000 + 0011 = 0001 0001
注意:8421码中1010-1111是没有十进制数与之对应,因此在计算结果超出1001时需要进行结果修正,即进位,由以上例子可见十进制计算结果为11,8421计算结果为10001,则修正为计算结果0001 0001,分别对应11的两个1,写的时候可以省略掉开头的零,即灰色的部分。
余3码和2421码
8421码映射最后出现了1010-1111没有映射的值,即取四位数为一组取十六种状态中的十种,同理的还有余3码和2421码,同样是取四位为一组和十进制的0-9作映射。
8421码中每一位都是二进制数,权值是2,2421码则是改变权值来进行转化运算的,每一组2421码四位数从左到右的权值分别为2421,因此在向十进制转化时要注意权值。例如:
1111转化为对应的十进制数9的运算:1*2+1*4+1*2+1*1 = 2+4+2+1 = 9
ASCII码
在很多学生初学C语言等编程语言时候就初步接触过ASCII码。
键盘中很多键都可以打出两个字母、数字或者符号,细心的同学可能会数一下一共可以打出128个常用字符,ASCII码就是与之相对应的
而计算机处理问题过程中是使用8bit位进行运算的,而128仅仅是2的七次方,所以通常会在前面加上第八位来构成1b,即一个字节。
计算机分辨键入字符就是通过ASCII码进行的,存放也是通过ASCII码进行存放。而ASCII码在计算机存放则是通过上面提到的八位二进制数。例如计算机中存放字母A,A对应ASCII码是65,计算机通过01000001来存放ASCII码65,对A进行一个间接存放。
ASCII码的映射表如下:
ASCII码中数字的映射和字母的映射其的规律
数字的规律:0-9十个数字对应的ASCII码分别为48-57,48-57转化二进制数是00110000-00111001。通过观察我们不难发现前四位都是0011,而后四位正是0-9十个十进制数字对应的8421码。
字母的规律:
大字母对应的ASCII码为:65(010 00001)-90(010 11010)
大字母对应的ASCII码为:97(011 00001)-122(011 11010)
通过观察,我们发现字母对应的ASCII码转化成二进制时前三位大写都是010,小写都是011,后五位则是十进制数1-26转化成二进制后的五位数映射,分别对应了A-Z、a-z。