欢迎关注小睿的微信公众号:`郭小睿同学`,每天更新小知识、笔记、案例、学习资源~
![我的公众号](http://upload-images.jianshu.io/upload_images/6285080-7f48ac057bdb309a?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
前言
在编程中,有时候会用到进制数来作为操作数据,所以下面就讲下它们的概念以及它们之间的转换。
进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。
它们的关系如下,都是可以相互转换的。
二进制:二进制,Binary,是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
八进制:八进制,Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。
十进制:十进制,Decimal,就是日常生活中用的最多的,如:1,2,3,……100,200,300……。十进制基于位进制和十进位两条原则,即所有的数字都用10个基本的符号表示,满十进一,同时同一个符号在不同位置上所表示的数值不同,符号的位置非常重要。基本符号是0到9十个数字。
十六进制:十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。
转换方法:
十进制转二进制
方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
二进制转十进制
方法为:把二进制数按权展开、相加即得十进制数。
二进制转十六进制
方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
十六进制转二进制
方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
十进制转八进制
方法为:除8取余法。
例:将十进制的(796)D转换为八进制的步骤如下:
1. 将商796除以8,商99余数为4;
2. 将商99除以8,商12余数为3;
3. 将商12除以8,商1余数为4;
4. 将商1除以8,商0余数为1;
5. 读数,因为最后一位是经过多次除以8才得到的,因此它是最高位,读数字从最后的余数向前读,1434,即(796)D=(1434)O
十进制转八进制或者十六进制
第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。
第二:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。
八进制或者十六进制转成十进制
方法为:把八进制、十六进制数按权展开、相加即得十进制数。
八进制 >十六进制
方法:将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。
例:将八进制的(327)O转换为十六进制的步骤如下:
① 3 = 011;
② 2 = 010;
③7 = 111;
④0111 = 7;
⑤1101 = D;
⑥读数,读数从高位到低位,D7,即(327)O=(D7)H。
十六进制 >八进制
方法:将十六进制转换为二进制,然后再将二进制转换为八进制,小数点位置不变。
例:将十六进制的(D7)H转换为八进制的步骤如下:
①D = 1101;
②7 = 0111;
③111 = 7;
④010 = 2;
⑤011 = 3;
⑥读数,读数从高位到低位,327,即(D7)H=(327)O。
摘自360doc图书馆二进制、八进制、十进制与十六进制的概念以及它们之间的转换,纠正了部分错误。
个人倡议:
我们在汲取某些知识后,不如将它记录下来,以便于我们后期的回顾!