`

[转]不同进制之间的转换

阅读更多

一、 二进制与十进制之间的转换

   a.二进制转十进制(不分整数和小数从最后一位算起,每一位上的数乘以2的几次方,这个次数由这个数字所在的位置决定,从零位开始,然后相加)  

01101011.001 转十进制:

第-3   1乘2的-3次方=0.125
第-2   0乘2的-2次方=0
第-1   0乘2的-1次方=0
第0位  1乘2的0次方=1
  1   1乘2的1次方=2
  2  0乘2的2次方=0
  3  1乘2的3次方=8 
  4   0乘2的4次方=0
  5   1乘2的5次方=32
  6  1乘2的6次方=64
  7  0乘2的7次方=0

然后:1+2+0+8+0+32+64+0=107.125
01101011=107

  b.十进制转二进制

(整数:除2取余法是一个连续除2的过程,直到商出现0时位置,余数反向排列;)
整数23 转二级制:
23除2商11余1
11除2商5余1
 5除2商2余1
 2除2商1余0
 1除2商0余1
然后把余数反向排列 :23=10111

 

(小数:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 
为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数)

0.125 转二进制

第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25; 
第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5; 
第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0; 
第四步,读数,从第一位读起,读到最后一位,即为0.001。

23.125 转二进制10111.001

 

0.45 转二进制(保留到小数点第四位)

第一步,将0.45乘以2,得0.9,则整数部分为0,小数部分为0.9;
第二步, 将小数部分0.9乘以2,得1.8,则整数部分为1,小数部分为0.8;
第三步, 将小数部分0.8乘以2,得1.6,则整数部分为1,小数部分为0.6;
第四步, 将小数部分0.6乘以2,得1.2,则整数部分为1,小数部分为0.2; 算到这一步就可以了,因为只需要保留四位小数
第五步, 将小数部分0.2乘以2,得0.4,则整数部分为0,小数部分为0.4;
第六步, 将小数部分0.4乘以2,得0.8,则整数部分为0,小数部分为0.8;后面会一直循环重复
第七步, 将小数部分0.8乘以2,得1.6,则整数部分为1,小数部分为0.6;

。。。。。。
读整数不分,从第一位读起,读到最后一位,即为0.0111。

23.45(保留到小数点第四位)10111.0111


二、 二进制与八进制之间的转换(基础还是二进制和十进制之间的转换)

(取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到 的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位 时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位)这里的最高位,最低位和十进制的一样,前面的是最高位,后面的是最低位

   三位二进制表示一位八进制, 因为三位二进制数最大(111)的十进制数也就是7,所以就保证每位数都是0-7之间的数

   a.二进制转八进制

1100100 拆分成 : 001 100 100
001 1 这是由二级制转换成十进制得来的  0*2^2 +  0*2^1 + 1*2^0 = 1
100 4                             1*2^2 + 0*2^1 + 0*2^0 = 4
100 4                             1*2^2 + 0*2^1 + 0*2^0 = 4
依次读下来就是 144
1100100 =144

   b.八进制转二级制(脑海中有个概念,那就是你要用十进制转二进制先算出0-7每个数的二级制数表达方式,还是一样不够三位补零)

000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

有了上面这个表,随便报一个数653524,你要明白八进制上的一位就对应三位二进制,653524有6位,所以二进制数就有3*6=18位,6用110代替,5用101代替,依次下来就是

110 101 011 101 010 100 

 

三、 二进制与十六进制之间的转换(基础还是二进制和十进制之间的转换)

   四位二进制表示一位十六进制, 因为四位二进制数最大(1111)也就是十进制的表示法15即十六进制的表示法F,所以就保证每位数都是0-F之间的数

   a.二进制转十六进制

同样还是上面这个数:1100100 拆分 0110  0100 
0110 6
0100 4
1100100  = 64

b.十六进制转二进制(脑海中有个概念,那就是你要先算出0-F每个数的二级制数表达方式,还是一样不够四位补零)
1-0001
2-0010
3-0011
4-0100
5-0101
6-0110
7-0111
8-1000
9-1001
A-1010
B-1011
C-1100
D-1101
E-1110
F-1111

四、 十进制与十六进制之间的转换(其算法和二进制和十进制之间的算法一样只是,由2变成了16)     十进制与八进制之间的转换(其算法和二进制和十进制之间的算法一样只是,由2变成了8)
  a.十进制转十六进制
  123 转成十六进制
  123除16商7余B
  7除16商0余7结果就是7B
  b.十六进制转二进制
十六进数 2AF5
第0位: 5 * 16^0 = 5
第1位: F * 16^1 = 240
第2位: A * 16^2 = 2560
第3位: 2 * 16^3 = 8192
5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997
2AF5 = 10997


五、其他:八进制与十六进制、八进制与十进制之间的转换利用上面的关系就很简单了,比如八进制先换成二进制,再由二进制转换成十六进制
       各进制与十进制之间的转换
       有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数
       比如八进制数: 34 = 3*8^1 + 4*8^0 = 28

六、不常用进制(所谓几进制就是逢几进1,退1还几)
    三进制、四进制、五进制、。。。、n进制
    三进制:
     0      0
     1      1
     2      10
    四进制:
    0       0
    1       1
    2       10
    3       11
    五进制:
    0       0
    1       1
    2       10
    3       11
    4       100
    六进制:
    0       0
    1       1
    2       10
    3       11
    4       100
    5       101
    七进制:
    0       0
    1       1
    2       10
    3       11
    4       100
    5       101
    6       110 
    。。。
    n进制:脑海中有个概念,那就是你要用十进制转二进制先算出0-(n-1)每个数的二级制数表达方式,还是一样如果不够(log以2为底n的对数,不足1,结果则为1;大于1并且有小数,加1,取整数)位数,,左边补上(前面的结果-1)个零
           比如四进制就是,那就是你要用十进制转二进制先算出0-3每个数的二级制数表达方式,还是一样不够补(log以2为底4的对数)位数,左边补上(2-1)个零
           比如五进制就是,那就是你要用十进制转二进制先算出0-4每个数的二级制数表达方式,还是一样不够补(log以2为底5的对数+1)位,左边补上(3-1)个零
           比如八进制就是,那就是你要用十进制转二进制先算出0-7每个数的二级制数表达方式,还是一样不够补(log以2为底8的对数)位,左边补上(3-1)个零
 本文转自:http://www.cnblogs.com/o-andy-o/p/3410356.html
分享到:
评论

相关推荐

    进制数转换二进制八进制十进制十六进制之间转换方法PPT学习教案.pptx

    本文将从基本概念到进制数转换规则,详细解释二进制、八进制、十进制、十六进制之间的转换方法。 一、基本概念 在计算机科学中,最小的数据单位是位(bit),它是计算机内部的基本存储单位,一个位可以存储0或1两...

    pb字符串转十六进制及各进制之间转换源码

    本篇将详细介绍如何在PowerBuilder 9中进行字符串转十六进制以及不同进制之间的转换。 在PowerBuilder中,我们可以使用内置的函数或者自定义函数来实现字符串到各种进制的转换。对于“pb字符串转十六进制”,我们...

    总结进制数转换二进制八进制十进制十六进制之间转换方法PPT学习教案.pptx

    * 十进制与二进制之间的转换 + 十进制转换为二进制:除以 2 直到商为 0,逆序取余数 + 二进制转换为十进制:乘以 2 的幂次方 * 十进制与八进制之间的转换 + 十进制转换为八进制:除以 8 直到商为 0,逆序取余数 ...

    二进制八进制十进制十六进制之间的转换算法.pdf

    "二进制八进制十进制十六进制之间的转换算法" 本文主要讲解了二进制、八进制、十进制、十六进制之间的转换算法。包括十进制与二进制之间的转换、八进制与二进制之间的转换、十六进制与二进制之间的转换等。 十进制...

    Java SE程序 进制之间的转换

    Java SE程序 进制之间的转换Java SE程序 进制之间的转换Java SE程序 进制之间的转换Java SE程序 进制之间的转换Java SE程序 进制之间的转换Java SE程序 进制之间的转换Java SE程序 进制之间的转换Java SE程序 进制...

    任意进制之间的转换

    这是一个可以实现任意进制之间转换的C语言代码。

    计算机各种进制转换练习题(附答案).pdf

    它是指在不同进制系统之间进行数值表示的转换,例如十进制、 二进制、八进制、十六进制等。下面是计算机各种进制转换的练习题,旨在帮助学习者更好地理解和掌握进制转换的知识。 一、十进制与二进制的转换 1. 十...

    java实现各进制之间转换

    在编程领域,尤其是在Java语言中,进行不同进制之间的转换是一项基本操作。进制转换是计算机科学中的基础知识,因为计算机内部使用的是二进制(Binary)系统,而我们日常使用的是十进制(Decimal)系统。为了理解并...

    C语言进制转换,十进制转16进制

    在编程领域,进制转换是一项基础且重要的技能,特别是在C语言中。...无论是学习操作系统、网络通信还是数据存储,都会涉及到不同进制之间的转换。通过实践和理解上述方法,你可以更好地应对各种C语言编程任务。

    labview进制之间相互转换

    二进制数值至八进制,十进制,十六进制字符串转换; 十六进制数值至二进制,八进制,十进制字符串转换; 十进制数值至二进制,八进制,十六进制字符串转换。

    34-36进制到10进制的转换 !

    了解并掌握不同进制之间的转换对于编程、数据解析以及理解底层计算原理都至关重要。在实际应用中,我们可能会遇到各种各样的编码系统,熟悉各种进制的转换方法能帮助我们更好地理解和解决问题。在条形码应用中,正确...

    进制间的转换二进制与十进制转换流程图解

    进制转换是计算机科学的基础,理解不同进制之间的转换对于学习和使用计算机系统至关重要。这里主要探讨的是二进制和十进制之间的转换方法。 **一、整数部分的转换** 1. **从十进制到二进制:短除法** 整数部分的...

    ascii 16进制 10进制之间转换

    在实际工作中,我们有时会使用工具来进行这些转换,如提到的"ASCII及进制转换 V4.0.exe",它提供了一个便捷的界面,帮助用户快速进行ASCII、16进制和10进制之间的转换,避免了手动查询和计算的繁琐。这样的工具对于...

    进制转换C源码

    首先,进制转换是计算机科学中的基本概念,主要包括二进制、八进制、十进制和十六进制之间的转换。C语言中,我们可以利用内置的函数如`printf`和`scanf`进行简单的进制转换,但更复杂的转换通常需要自定义函数来完成...

    浮点数与十进制数转换工具

    本文将详细探讨浮点数与十进制数之间的转换原理及其在实际应用中的重要性。 首先,浮点数是一种表示实数的方式,特别适合于科学计算,因为它可以表示广泛的数值范围,并且精度相对较高。在计算机内部,浮点数通常...

    进制转换 二进制与十进制 八进制 十六进制转换

    根据提供的文件信息,我们可以推断出这是一段用于进行不同进制之间转换的C语言程序代码。该程序允许用户在二进制、八进制、十进制和十六进制之间进行相互转换。接下来,我们将深入探讨不同进制之间的转换方法,并...

    进制转换,各种进制之间的相互转换

    下面将详细阐述各种进制之间的相互转换方法。 一、二进制(Binary)与十进制(Decimal)转换 1. 二进制转十进制:可以采用按权展开法,即将每个二进制位乘以其权重(2的n次方),然后将所有结果相加得到十进制数。...

    易语言模块完全进制转换.rar

    在编程过程中,进制转换是一项基础且重要的技能,无论是十进制、二进制、八进制还是十六进制之间的转换,都是程序员必须掌握的基本功。易语言提供了丰富的内建函数和模块来支持这些转换操作,以满足各种编程需求。 ...

    几进制之间的相互转换!

    三、 十进制与八进制之间的转换 (1) 十进制转换为八进制 方法:先将十进制数转换为二进制,再将二进制转换为八进制。参照二进制转换为八进制的取三合一法。 (2) 八进制转换为十进制 方法:按权相加法,将每一...

    C#进制转换函数(2,8,10,16进制之间的转换)

    在C#编程语言中,进行不同进制之间的转换是一项非常重要的技能。本篇文章将详细介绍如何利用C#中的`Convert`类来实现2进制、8进制、10进制和16进制之间的相互转换。 ### 一、C#进制转换基础 #### 1. 进制概念 - **...

Global site tag (gtag.js) - Google Analytics