我们先来看一下概念。
一、概念
1、二进制(binary)在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的,通常用0和1表示。
2、八进制,Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。
3、十进制(计数法)是以10为基础数字系统, 用0、1、2、3、4、5、6、7、8、9 这十个数来表示,是在世界上应用最广泛的进位制。
4、十六进制(简写为hex或下标16)在数字中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。
二、转化
1、十进制转二进制
原理:将十进制数字作为被除数,除数为2,做整除运算,得到余数和商,一直除到商为0为止,然后倒序取余数,得到的结果就是转换的对应二进制数字。
例子:十进制数字:11 转换为二进制为:1011
转换过程如下图:
2、二进制转十进制
原理:从二进制数字的右边第一个数字开始,每个数字乘以2的n次方,n从0开始依次递增1,然后将每个乘积相加,结果就是该二进制对应的十进制数字。
例子:二进制数字:1011010 转换为十进制为:90
转换过程如下图:
3、JAVA十进制与二进制、八进制、十六进制间的转化
十进制转二进制:Integer.toBinaryString(int i)
十进制转八进制:Integer.toOctalString(int i)
十进制转十六进制:Integer.toHexString(int i)
二进制转十进制:Integer.valueOf("0101",2).toString()
八进制转十进制:Integer.valueOf("401",8).toString()
十六进制转十进制:Integer.valueOf("FFFF",16).toString()
还有一个方法可将二进制、八进制、十六进制直接转换为十进制:
java.lang.Integer.parseInt(String s, int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。注意,这个方法,只能转化正数。