进制间的相互转化

原文:进制间的相互转化

进制间的转换如下图所示:

由上图可知,进制间共有12种转换。下面将逐一介绍这12种转换方法

(1)二进制转化为八进制

原理:<1>1位八进制数可以用3位二进制数码表示

<2>以小数点为边界:若小数点左侧(即整数部分)不是3的整数倍,则在最左侧补零,对小数点右侧(即小数部分)应在最右侧补零

例:   将(10.101)2 转化为八进制。

解:(1)将二进制补足3位

即:(010.101)2

(2)按权值转换

(0×22 + 1×2+0×20).(1×22 + 0×2+1×20)=2.5

故 (010.101)2 =(2.5)10

注意:从最低位开始把3位划分为一组。

(2)二进制转化为十进制

例: 将(1101.0101)2转化为十进制。

解:23+ 22+20+2-2+ 2-4=13.3125

故 (1101.0101)2=(13.3125)10

解题技巧:记住对应的位权

        20                 21                22                   23                24                   25                     26                     27                     28                       29                         210                        211           
        1          2          4          8        16         32           64         128        256         512         1024        2048

(3)二进制转化为十六进制

原理:<1>1位十六进制数可以用4位二进制数码表示

<2>以小数点为边界:若小数点左侧(即整数部分)不是4的整数倍,则在最左侧补零,对小数点右侧(即小数部分)应在最右侧补零

例:  将(10.101)2转化为十六进制。

解:(1)将二进制补足3位

得 (0010.1010)2

(2)按权值转换

21 .(23+21)=2.A

故   (10.1010)2 =(2.A)16

注意:从最低位开始把3位划分为一组。



(4)八进制转化为二进制

原理:将一个八进制数分成三个二进制数,用三位二进制按权相加,最后得到二进制,小数点不变。

例:将(376.01)8转化为二进制。

分解图如下:

故  (376.01)8=(11111110.000001)2

(5)八进制转化为十进制

例:将(7.44)8 转化为十进制

解:(7.44)8 =7×80+4×8-1+4×8-2=(7.5625)10

注意:八进制基本符号的取值范围,即:0~7.

(6)八进制转化为十六进制

这里有两种解法:

解法一:将八进制转化为二进制,再将二进制转化为十六进制

解法二:将八进制转化为十进制,再将十进制转化为十六进制

例:        将(67.54)8 转化为十六进制。

解法一

<1> 将八进制转化为二进制

(67.54)8=(110111.101100)2

<2>将二进制转化为十六进制

故  (110111.101100)2=(37.B)16

解法二

<1>将八进制转化为十进制

(67.54)8=(55.6875)10

<2>将十进制转化为十六进制

故  (55.6875)10=(37.B)16

(7)十进制转化为二进制

整数部分---原理:<1>用2除十进制的整数部分,取余数最低位数值

<2>再用2除商,取余数最低位数值

<3>重复<2>直到商为0.

例:  将37转化为二进制。

解:如下分解

得  (37)10=(100101)2.

注意:余数部分是由低到高,写出的二进制是由高到低。

余数部分---原理:<1>用2乘十进制小数部分,取乘积整数得到最高位

<2>再用剩余小数部分乘2,取乘积整数得到次高位

<3>重复直到乘积为0或得到的小数位满足要求

例:  将0.43转化为二进制小数。(假设要求小数点后五位)

解:如下图所示

故  转化后的二进制小数为(0.01101)2

(8)十进制转化为八进制

例: 将(1109)10转化为八进制。

解:如下图解

故 (1109)10=(2125)8

下面我们来看看转化为八进制小数的情况

例如:(0.385)10转化为八进制小数。

解:            0.385x8

3   0.08x8

0   0.64x8

5   0.12x8

结果:(0.385)10=(0.305)8

(9)十进制转化为十六进制

例:将(55.6875)10转化为十六进制。

解:<1>先求小数部分

得 (55)10=(37)16

<2>求小数部分

0.6875x16

11    0

得  (0.6875)10=(0.B)16

故结果为:(55.6875)10=(37.B)

(10)将十六进制转化为二进制

原理:将一位十六进制数分解成四位二进制数,再用四位二进制按权相加,最后得到十六进制数,小数点位置不变。

例:将(6E.2)16转化为二进制。

解:图解如下

故结果为:(6E.2)16=(01101110.001)2

(11)十六进制转化为八进制

解题思路:先将十六进制转化为二进制,然后再将二进制转化为八进制。

例:将(8E.09)16转化为八进制。

解:<1>将十六进制转化为二进制,得

(8E.09)16=(10001110.00001001)2

<2>将二进制转化为八进制,得

(10001110.00001001)2=(216.022)8

所以转化的最终结果为

(8E.09)16=(216.022)8

(12)十六进制转化为十进制

例:将(1A.08)16 转化为十进制。

解:(1A.08)16=1x16+10x160+8x16-2=(26.03125)10

故结果为:(1A.08)16=(26.03125)10.

到这里有关进制间的相互转换都已经完成,当然在分析解题思路和举例的过程中可能会有一些失误。如果有不足或者需要扩展的地方还望广大朋友多多指教。同时也希望能对大多数朋友有所帮助。

时间: 2024-12-21 03:30:55

进制间的相互转化的相关文章

进制间转换

 B(Binary)二进制.O(Octet)八进制.D(Decimal)十进制.H(Hex)十六进制 进制转换: 1.十进制to N进制 以十进制数/N,其结果再/N,直至结果为0,然后从后往前取每次除法结果余数即可. 例如:20000转16进制 20000/16=1250       余0, 1250/16=78             余2, 78/16=4                  余14(E) 4/16=0 余4 所以结果是:4E20H 2.N进制to 十进制(由于十进制更符合普

进制间的互相转换

一)十进制 转换 为其他进制:采用倒取余数法 例1:十进制89 转换为 五进制数 89/5=17 余 4 ,余数是4 17/5=3 余 2 ,余数是2 3/5=0 余 3 ,余数是3 那么转换为五进制数是324,要把余数倒过来写. 反过来算就是: 4*5^0 + 2*5^1 + 3*5^2 = 89 例2:十进制957 转换为 十六进制数 957/16 = 59 余13,余数是13,即D 59/16 = 3 余 11,余数是11,即B 3/11 = 0 余 3, 余数是3 所以转换为十六进制数是

2~16进制间任意进制转换器

一.程序运行截图(仅列举部分) 正数: (1)10->8 (连续五次不输入程序会自动结束哦) (2)10->2 (3)16->10 (4)8->16  负数: (1)10->2 (2)10->2 (3)8->16  二.扩展功能 1.可以识别正负数并输出,当输出为二进制时会自动将其补为有符号位的八位或十六位. 2.能在2至16所有进制间任意转换: 3输入错误时会报错并让你重新输入: 4.加了一个没卵用的随机数来使最后一句话随机输出. 三.介绍函数及其使用的全局变量

Java进制间的转换

最近学习了Java间的进制转换,记录下自己的学习心得,希望可以帮到前来查看的朋友们,如果有不懂的地方可以在下方评论留言,我们一起学习进步,只有自己足够强大才能弥补不足,多学习, 任意进制到十进制的转换: 12345=10000+2000+300+40+5 =1*10^4+2*10^3+3*10^2+4*10^1+5*10^0 =12345 系数:就是每一位上的数据 基数:X进制,基数就是X 权:在右边,从0开始编写,对应位上的编号就是该位的权, 结果:把系数乘基数的权次幂相加即可 0b100这次

java 的任意进制间转换

直接上代码: public class Main { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("十进制转换到其它进制:"); int x = 123 ; String str1 = Integer.toHexString(x) ; ///10进制转换成16进制的字符串 System.out.println(str1); String st

进制间的相互转换

我们平时计算都是使用十进制数,但是有时候我们需要用到二进制数.十六进制数等.在进制转换中,我们主要需要掌握的是十进制转换成N进制和N进制转换成十进制,而对于任意进制之间的相互转换,例如:P进制转换成R进制. 1.任意进制转十进制: k(n) * 10^(n-1) + k(n-1) * 10^(n-2) + ... + k(2) * 10^1 + k(1) * 10 ^0,其中n代表数字所在的位数,k(n)代表第n位上的数字值 2.十进制转任意进制:        (1)试减法         

Python 各进制间的转换(转)

转载自:http://blog.chinaunix.net/uid-21516619-id-1824975.html python 2.6以后内置函数#10进制转为2进制>>> bin(10)'0b1010'#2进制转为10进制>>> int("1001",2)9 #10进制转为16进制>>> hex(10)'0xa'#16进制到10进制>>> int('ff', 16)255>>> int('0

进制间的转换(二进制、八进制、十六进制、十进制)

进制转换在我们生活中使用十分频繁 我们比较常见的进制有 1.二进制 2.八进制 3.十进制 4.十六进制 5.十二进制 6.二十四进制 7...... 一.二进制 我们都知道二进制是在计算机中运用的较多,因为计算机中只有两种状态(开关或者高电平低电平) 我们一般用基数0和1来表示,二进制的运算时逢2进1 一般我们运算有两种方法 1.1-除二取余法 这个方法是一个解决方案 例如:(我们在这里是十进制转化为二进制) 13转化为二进制 13/2=6..........1 6/2=3..........

Python各进制间的转换

表示各进制的符号: b:二进制,o:八进制,d:十进制,x:十六进制 bin().oct().hex()返回值均为字符串,且分别带有0b.0o.0x前缀. 1.十进制转二进制 >>> bin(10) '0b1010' >>> '{0:b}'.format(10) '1010' 这两种方法返回的都是二进制的字符串表示. 对十进制数直接转二进制 list1 = [] if num <= 1 and num >= 0: print "二进制:%d&quo