C++编程语言,二进制、八进制、十进制、十六进制之间如何转换

一、进制的基本概念

C++编程语言,二进制、八进制、十进制、十六进制之间如何转换

进制:进位记数制的简称,将数字符号按序排列成数位,并遵照某种由低位到高位的进位方式计数表示数值的方法。

下表中常见几种进制:

C++编程语言,二进制、八进制、十进制、十六进制之间如何转换

基数:某进制计数制允许选用的基本数字符号的个数称为基数。

权:各进制中每一个固定位置对应的单位值称为权。权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。

如下图:

C++编程语言,二进制、八进制、十进制、十六进制之间如何转换

二、各进制之间的转换

由于计算机内部使用的数字符号只有0和1,也就是二进制。二进制有易于物理实现、运算简单、机器运行的可靠性高、以及通用性强的优点,所以必须有一种自动转换方法,在数据输入和输出计算机时,二进制和十进制能相互自动的转换。在上图中,二进制、八进制、十六进制它们之间的权值有内在的联系,即每位八进制数相当于3位二进制数,每位十六进制数相当于4位二进制数,那么八进制和十六进制也因此需要熟悉相互间的转换。

为了方便记忆,B表示二进制数,O表示八进制数,D表示十进制数,H表示十六进制数。

1、R进制转换为十进制:

只要将R进制数的各位数字与它的权相乘,其积相加,和数就是十进制。

如:将(11111111.11 )2 转换成十进制

C++编程语言,二进制、八进制、十进制、十六进制之间如何转换

2、十进制转换为R进制(分为整数部分和小数部分):

整数部分:

用十进制数连接地除以基数R,得出的余数即为相应R进制数的各位系数。此方法称为“除基取余法”。

如:将(168)10 转换成八进制数

C++编程语言,二进制、八进制、十进制、十六进制之间如何转换

(168)10 =(250)8

小数部分:

用十进制数连续地乘以基数R,得到的整数即组成R进制的数,此法称为“乘基取整”。

如:将(0.3125)10 转换成二进制数

C++编程语言,二进制、八进制、十进制、十六进制之间如何转换

(0.3125)10 =(0.0101)2

3、二进制、八进制、十六进制之间的转换:

二进制数,从小数点开始,向左右分别按三(四)位为一个单元划分,每个单元单独转换成一个八进制(十六进制)数,就完成了二进制到八、十六进制数的转换,在转换时,位组划分是以小数点为中心向左右两边延伸,中间的0不能省略,两头不够时可以补0。

如:

C++编程语言,二进制、八进制、十进制、十六进制之间如何转换

相关文章