Java教程

进制的转换

本文主要是介绍进制的转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、进制定义

二进制:是指在数学和数字电路中以2为基数的记数系统,二进制只有0和1两个数字符号,其运算规律是逢2进1,例如101101。为了与其他进制区别,二进制数的后缀都用大写字母B,例如101101B

八进制:一种以8为基数的计数法,采用0,1,2,3,4,5,6,7这八个数字符号,其运算规律是逢8进1,例如77。为了与其他进制区别,八进制数的后缀都用大写字母O(不是数字0),例如77O

十进制:一种以10为基数的计数法,采用0,1,2,3,4,5,6,7,8,9这十个数字符号,其运算规律是逢10进1,例如88。为了与其他进制区别,十进制数的后缀都用大写字母D,例如88D

十六进制:一种以16为基数的计数法,采用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F这十六个数字和字母符号,其运算规律是逢16进1,例如9527。为了与其他进制区别,十六进制数的后缀都用大写字母H,例如9527H

2、各进制间的转换方法

2.1 二进制转其他进制
二进制转十进制:采用位置计数法,其位权是以2为底的幂,顺序从右到左,从0开始计数。例如二进制数1011B = 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 11D

图1:二进制转十进制的位权法

二进制转八进制:采用三合一法,即从二进制的小数点为分界点,向左(或向右)每三位对应八进制的一位,不足三位的前面补0,例如:10110011B = (0)10 110 011 = 263O

图2:二进制转八进制的合位法

二进制转十六进制:采用四合一法,即从二进制的小数点为分界点,向左(或向右)每四位对应十六进制的一位,不足四位的前面补0,例如:10110011B = 1011 0011 = B3H

图3:二进制转十六进制的合位法

2.2 十进制转其他进制
十进制转二进制:整数采用“除2倒取余”,小数采用“乘2取整”。例如十进制数135转换成二进制时,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取,结果为10000111B

十进制转八进制:和转二进制的方法类似,整数采用“除8倒取余”,小数采用“乘8取整”。例如十进制数10转换成二进制时,将10除以8,得余数,直到不能整除,然后再将余数从下至上倒取,结果为12O

十进制转十六进制:思路和转二进制、八进制一样,十进制数25转换成十六进制时,结果为19H

2.3 八进制转其他进制
八进制转二进制:和二进制转八进制的方法相反,采用三合一法,例如:263O = 010 110 011B

八进制转十进制:和二进制转十进制的方法一样,采用位置计数法,其位权是以8为底的幂,顺序从右到左,从0开始计数。例如八进制数26(八进制) = 2 * 81 + 6 * 80 = 22D

图4:八进制转十进制的位权法

八进制转十六进制:不能直接转换,需要先转成二进制,再将二进制转成十六进制

2.4 十六进制转其他进制
十六进制转二进制:和二进制转十六进制的方法相反,采用四合一法,例如:B3H = 1011 0011 = 10110011B

十六进制转八进制:不能直接转换,需要先转成二进制,再将二进制转成八进制

十六进制转十进制:和二进制转十进制的方法一样,采用位置计数法,其位权是以16为底的幂,顺序从右到左,从0开始计数。例如十六进制数26H = 2 * 161 + 6 * 160 = 38D

图5:十六进制转十进制的位权法

这篇关于进制的转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!