进制转换基础

 更新时间:2013年02月19日 16:40:23   作者:  
很多年前大学里学过的进制转换还是挺简单的,没想到多年不用了,都忘了,刚好看到这篇文章,特分享下,方便需要的朋友

基本知识

十进制
基数为10,逢10进1。在十进制中,一共使用10个不同的数字符号,这些符号处于不同位置时,其权值各不相同。

二进制
基数为2,逢2进1。在二进制中,使用0和1两种符号。

八进制
基数为8,逢8进1。八进制使用8种不同的符号,它们与二进制的转换关系为:
0:000 1:001 2:010 3:011 4:100 5:101 6:110 7:111

十六进制
基数为16,逢16进1。十六进制使用16种不同的符号,它们与二进制的转换关系为:
0:0000 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

制转换为十进制

二进制化为十进制
例:将二进制数101.01转换成十进制数
(101.01)2 = 1×22 + 0×21 + 1×20 + 0×2-1 + 1×2-2 = (5.25)10

八进制化为十进制
例:将八进制数12.6转换成十进制数
(12.6)8 = 1×81 + 2×80 + 6×8-1 = (10.75)10

十六进制化为十进制
例:将十六进制数2AB.6转换成十进制数:
(2AB.6)16 = 2×162 + 10×161 + 11×160 + 6×16-1 = (683.375)10

转换为二进制

八进制化为二进制
规则:按照顺序,每1位八进制数改写成等值的3位二进制数,次序不变。
例: (17.36)8 = (001 111 .011 110)2 = (1111.01111)2

十六进制化为二进制
规则:每1位十六进制数改写成等值的4位二进制数,次序不变。
例: (3A8C.D6)16 = (0011 1010 1000 1100.1101 0110)2 = (11101010001100.1101011)2

十进制整数化为二进制整数

规则:除二取余,直到商为零为止,倒排。
例:将十进制数86转化为二进制
2 | 86…… 0
2 | 43…… 1
2 | 21…… 1
2 | 10…… 0
2 | 5 …… 1
2 | 2 …… 0
2 | 1 …… 1
结果:(86)10 = (1010110)2

十进制小数化为二进制小数

规则:乘二取整,直到小数部分为零或给定的精度为止,顺排。
例:将十进制数0.875转化为二进制数
0.875
× 2
1.75
× 2
1.5
×2
1.0
结果:(0.875)10 = (0.111)2

转换为八进制

二进制化为八进制
整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。
小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。
例:(11001111.01111)2 = (11 001 111.011 110)2 = (317.36)8

十六进制化为八进制
先用1化4方法,将十六进制化为二进制;再用3并1方法,将二进制化为8制。
例: (1CA)16 = (000111001010)2 = (712)8
说明:小数点前的高位零和小数点后的低位零可以去除。

十进制化八进制
方法1:采用除8取余法。
例:将十进制数115转化为八进制数
8| 115…… 3
8| 14 …… 6
8| 1 …… 1
结果:(115)10 = (163)8
方法2:先采用十进制化二进制的方法,再将二进制数化为八进制数
例:(115)10 = (1110011)2 = (163)8

转换为十六进制

二进制化为十六进制
整数部份从最低有效位开始,以4位为一组,最高有效位不足4位时以0补齐,每一组均可转换成一个十六进制的值,转换完毕就是十六进制的整数。
小数部份从最高有效位开始,以4位为一组,最低有效位不足4位时以0补齐,每一组均可转换成一个十六进制的值,转换完毕就是十六进制的小数。
例:(11001111.01111)2 = (1100 1111 .0111 1000)2 = (CF.78)16

八进制化为十六进制
先将八进制化为二进制,再将二进制化为十六进制。
例:(712)8 = (111001010)2 = (1CA)16

十进制化为十六进制

方法1:采用除16取余法。
例:将十进制数115转化为八进制数
16| 115…… 3
16| 7 …… 7
结果:(115)10 = (73)16

方法2:先将十进制化为二进制,再将二进制化为十六进制。
例:(115)10 = (1110011)2 = (73)16

相关文章

  • git clone如何解决Permission Denied(publickey)问题

    git clone如何解决Permission Denied(publickey)问题

    文章介绍了如何解决Git clone时遇到的PermissionDenied(publickey)问题,包括检查SSH key是否存在、生成新的SSH key、将SSH key添加到ssh-agent以及将SSH key添加到GitHub账号,最后通过git clone下载代码
    2024-11-11
  • Spark中的数据读取保存和累加器实例详解

    Spark中的数据读取保存和累加器实例详解

    这篇文章主要为大家介绍了Spark中的数据读取保存和累加器实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 变量、函数、类的命名规则

    变量、函数、类的命名规则

    在阅读clean code书籍的时候,让我体会很多,因此我也用文字记录下这些有意义的知识。我认为这本书读十遍都不为过,下面我讲解一下自己的关于变量、函数、类的命名规则笔记。
    2011-08-08
  • Clion ROS开发环境设置技巧

    Clion ROS开发环境设置技巧

    这篇文章主要介绍了Clion ROS开发环境设置技巧,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 微信小程序里使用SVG矢量图标方法详解

    微信小程序里使用SVG矢量图标方法详解

    在微信小程序开发过程中需要在小程序里使用SVG矢量图标,下面为大家分享2种在微信小程序中引入SVG矢量图标的方法
    2018-10-10
  • 使用git上传到码云分支的实现

    使用git上传到码云分支的实现

    这篇文章主要介绍了使用git上传到码云分支的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • github 常用命令总结大全

    github 常用命令总结大全

    这里整理了github 常用命令的知识,希望能帮助使用GitHub的朋友快速掌握常用命令,有需要的朋友参考下
    2016-09-09
  • 网站开发中的文件存储目录结构的探讨

    网站开发中的文件存储目录结构的探讨

    网站应用中经常会有文件存储的需求,目录结构该怎么建才好呢?让我们来做下分析
    2010-07-07
  • unity下载并和vs2019关联的步骤详解

    unity下载并和vs2019关联的步骤详解

    这篇文章主要介绍了unity下载并和vs2019关联的步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 程序员用vscode听网易云的实现

    程序员用vscode听网易云的实现

    很多程序员在工作的时候都喜欢听歌,最近发现了一个vscode插件,可以直接使用vscode进行听歌,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-12-12

最新评论