一、进制

1、定义

进制:亦称进位记数法/位值计数法是一种记数方式,是人为定义的带进位的计数方法,用有限的数字符号代表所有的数值。

进位制:用基数和基数的整数幂的和来表示数字的方法,是从一种原始的计数方法,即符值相加记数法(Sign-value notation)演化而来的。

常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。

2、有两个基本的概念:基数和运算规则

2.1、基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字,例如:

B(Binary)表示二进制:由2个符号组成,分别是0、1逢二进一。

O(Octal)表示八进制:由8个符号组成,分别是0、1、2、3、4、5、6、7逢八进一。

D(Decimal)或不加表示十进制:由10个符号组成,分别是0、1、2、3、4、5、6、7、8、9逢十进一。

H(Hexadecimal)表示十六进制:由16个符号组成,分别是0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F逢十六进一。

为区别于其它进制,通常在数的后面加(B,O,D,H)表示,一般D也省略不写。

2.2、运算规则:运算规则就是进位或错位规则。

对于二进制来说,该规则是“满二进一,借一当二”;对于十进制来说,该规则是“满十进一,借一当十”。

总之就是:进制是由元素组成的,N进制就是有N个元素组成,逢N进一。

二、进制基数对照表(二、八、十、十六)

二进制:它只有两个基本计数符号,1和0,而逻辑运算操作数集合有两个元素,true和false,如果用1表示true,0表示false,他们可以完美无缝结合。

八进制:它的基数R=8=2^3,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。

十进制:人类天然选择了十进制。

十六进制:它的基数R=16=2^4,通常在表示时用尾部标志H或下标16以示区别。

三、进制转换

1、Java代码已实现进制间的相互转换

//java已经实现的机制:十进制转换为二进制

int decimal = 123;

System.out.println("十进制数:"+decimal+",转换为二进制:"+Integer.toBinaryString(decimal));

System.out.println("十进制数:"+decimal+",转换为八进制:"+Integer.toOctalString(decimal));

System.out.println("十进制数:"+decimal+",转换为十六进制:"+Integer.toHexString(decimal));

System.out.println("二进制数:"+"1111011" +",转换为十进制:"+Integer.valueOf("1111011", 2));

System.out.println("八进制数:"+"173" +",转换为十进制:"+Integer.valueOf("173", 8));

System.out.println("十六进制数:"+"7b" +",转换为十进制:"+Integer.valueOf("7b", 16));

2、二进制(重要)

3、进制转换(例子:123)

3.1 10进制转123)转(2进制,8进制,16进制)

还有一种快速方法就是用2的多少次幂来计算,如上所示的:123

1、2的7次方为128,123小于128,所以第一位是:64

2、123-64=59,很明显2的5次方32小于59,所以第二位是:32

3、59-32=27,同上,第三位是:16

4、27-16=11,同上,第四位是:8

5、11-8=3,同上,第四位是:2

以上计算结果为:64 32 16 8 1,根据二进制换算得以下所示:

3.2 2进制(1111011)转(8进制,10进制,16进制)

3.3 8进制(173)转(2进制,10进制,16进制)

3.4 16进制(7b)转(2进制,8进制,10进制)

更多推荐

java进制转换代码规律_[计算机基础] 进制及进制之间相互转换