由于本系列课程中,编码学中会涉及到二进制和十六进制,再者编码中用到的都是正整数,所以下面各进制的介绍都是基于正整数的。 十进制十进制数由0~9共10个数字字符组成,在十进制中“逢十进一”,在十进制每一位中表示最大数字为9。我们平时现实中接触的都是十进制数。 例如:100 二进制二进制数由0和1两个数字字符组成,在二进制中“逢二进一”,在二进制每一位中表示最大数字为1。 例如:1100100 八进制八进制数是由0~7共8个数字字符组成,在八进制中“逢八进一”,在八进制中每一位中表示最大数字为7,八进制在编程中和本系列课程中用到的比较少,这里不过多的介绍。 十六进制十六进制数从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F总共16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F(字母不区分大小写)这六个字母来分别表示10,11,12,13,14,15。以0x开头。 例如:0x64 , 0x12AB 各进制间转换1. 十进制与二进制互转 1.1 十进制转二进制 十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。 例如:100转换为二进制之后为1100100,详细过程如下图: 1.2 二进制转十进制 从最低位(最右)算起,位上的数字乘以本位的权重,权重就是2的第几位的位数减一次方。比如第2位就是2的1次方;第8位就是2的7次方,把所有的值加起来。 例如:1100100 2. 十六进制与二进制互转 2.1 二进制转十六进制 4bit位代表的一个十六进制位数,不足4bit位的高位补0。 因为4bit的最大值位1111为15,正好是十六进制的最大位数F。 例如:1100100 2.2 十六进制转二进制 每一位数按照十进制方式转换位二进制。 3 十进制与十六进制互转 第一种方式:间接法—把十进制(十六进制)转换为二进制,然后再由二进制转换为十六进制(十进制)。 第二种方式:直接法—把十进制转十六进制按照除16取余,直到商为0为止,反之十六进制数按权展开、相加即得十进制数。 间接法结合上面的,想必大家都会,这里就不再介绍了。下面以直接法为例子介绍: 3.1 十进制转换为十六进制 把十进制转十六进制按照除16取余,直到商为0为止。 3.2 十六进制转换为十进制 十六进制数按权展开、相加即得十进制数。 |
|