二进制、八进制、十进制、十六进制的概念及转换关系

概述:二进制、八进制、十进制、十六进制的概念及转换关系详解

一、各进制的概念

常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。

二进制:二进制,在计算机内部,数据都是以二进制的形式存储的。用0、1两个数字来表示数值,这就是二进制(Binary)。例如,数字 0、1、10、111、100、1000001 都是有效的二进制。

八进制:八进制,Octal,缩写OCT或O,采用0、1、2、3、4、5、6、7八个数字,逢八进一。

十进制:十进制,是日常生活中使用、接触最多的,所有的数字都用10个基本的符号标识,满十进一。

十六进制:十六进制,是计算机中数据的一种表示方式,它是由0-9和A-F组成,字母不区分大小写。

各进制的关系如下图:

不同进制比大小java 不同进制数的比较_八进制

二、各进制的转换

2.1 十进制转二进制

十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直
到商为0为止。

不同进制比大小java 不同进制数的比较_八进制_02

2.2 二进制转十进制

把二进制数按权展开,相加即为十进制数;

10010110

1X2^7 + 0X2^6 + 0X2^5 + 1X2^4 + 0X2^3 + 1X2^2 + 1X2^1 + 1X2^0 = 150

2.3 八进制转二进制

八进制数除2取余法,得到二进制数,对每个八进制数分为3个二进制单位,不足时左边补零

不同进制比大小java 不同进制数的比较_不同进制比大小java_03

2.4 二进制转八进制

把二进制数按照3位为单位进行按权展开相加得到1位八进制数。

不同进制比大小java 不同进制数的比较_数据结构_04

2.5 十六进制转二进制

十六进制数除2取余法,得到二进制数,对每个十六进制数分为4个二进制单位,不足时左边补零

不同进制比大小java 不同进制数的比较_八进制_05

2.6 二进制转十六进制

把二进制数按照4位为单位进行按权展开相加得到1位十六进制数。

不同进制比大小java 不同进制数的比较_十六进制_06

2.7 十进制转八或十六进制

方法一:间接法,把十进制转换成二进制,然后由二进制转换为八或十六进制

方法二:直接法,十进制数除8或16取余法,即十进制数除8或16,余数为权位上的数,得到的商值继续除8或16,直到为商0为止。

不同进制比大小java 不同进制数的比较_不同进制比大小java_07

2.8 八或十六进制转十进制

把八或十六进制按权展开,相加即可得到十进制数

不同进制比大小java 不同进制数的比较_八进制_08

2.9 八进制转十六进制

将八进制转换为二进制,然后将二进制转换为十六进制

不同进制比大小java 不同进制数的比较_不同进制比大小java_09

2.10 十六进制转八进制

将十六进制转换为二进制,然后将二进制转换为八进制

不同进制比大小java 不同进制数的比较_十六进制_10