分享

小故事阐述编码原理

 xiejunxy 2019-02-06

由于本系列课程中,编码学中会涉及到二进制和十六进制,再者编码中用到的都是正整数,所以下面各进制的介绍都是基于正整数的。

十进制

十进制数由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 十六进制转换为十进制

十六进制数按权展开、相加即得十进制数。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多