进制转换(包含小数转换)

进制转换(包含小数转换)进制转换

?前言

?哈喽,大家好,我是Aaron。

本文将带来各进制之间的转换规则,但在了解之前需要知道~

八进制和十六进制之间是没有直接的转换方式的,只能通关转换为其他进制形式,再通过其他形式转换。

比如说八进制数字,只能将其转换为二进制数字或者十进制数字之后,再由转换为的二进制数字或十进制数字转换为十六进制得到。


?下面正文开始。

燃爆全场

?各进制表示方式

例如:

这四个进制表示的是同一个数字10,不同进制只是其表现形式不同而已~

为了加以区分,就产生了不同的标识来确定其表示形式。


?各个进制的字母表示

在有些场景并不会告诉我们某一个数字表示的是几进制,但会在其数字中加上对应的字母加以区分,首先我们先认识以下不同进制对应的字母。

数字可以通过其简写字母来加以区分,比如011010B表示二进制,352O表示八进制,31D表示十进制,32H表示十六进制。

注意: 什么都不加的情况默认是十进制数字~


❤️各个进制的前缀表示

进制的前缀表示是我们比较常见与熟知的,下面一一介绍~

  1. 二进制前缀 – 0b
  2. 八进制前缀 – 0
  3. 十进制前缀 – 无
  4. 十六进制前缀 – 0x(大小写都可以)

如0b表示二进制,027表示八进制,91表示十进制,0x(0X)39f表示十六进制。

注意: 八进制的前缀是数字0,而不是字母O,十六进制前缀是数字0加上字母X,不是字母Ox。


不论是前缀还是后缀,都可以唯一标识其进制形式~博主这里汇总了一张表格,希望可以提供帮助 ~

进制 英文 范围 前缀 后缀
二进制 Binary 0~1 0b B
八进制 Octal 0~7 0 O
十进制 Decimal 0~9 \ D
十六进制 Hexadecimal 0~9,a ~ f 0x H

?二进制与八进制的相互转换

二进制和八进制之间是可以相互转换的~

接下来我们分开讨论~

?二进制转换为八进制

以小数点为分界,整数部分从最低位开始每3个二进制数字为一组,高位不够在更高位补0,小数部分从最高位开始每3个二进制数字为一组,低位不够在更低位补0。

文字描述不够形象,我们举例来说:

比如一个二进制数字:

0.01001 

将其按上述规则分组:

01 101 010 101.010 01 

可以看到整数和小数部分都有不够3个的情况,则补0:

001 101 010 101.010 010 

之后按其权重计算:

001 101 010 101.010 010 1 5 2 5 . 2 2 

所以该二进制数字转换为八进制为:1525.22

使用进制转换器进行验证:

进制转换器


?八进制转换为二进制

举例:

比如八进制数字357.146要转换成二进制数字,则把八进制数字的每一个位单独来看。

3 5 7.1 4 6 

将其每一位都按其对应的权重转换位二进制。

 3 5 7 . 1 4 6 011 101 111.001 100 110 

所以八进制数357.146转换为二进制的结果是.00

用进制转换器验证:

进制转换器


?二进制与十进制的相互转换

二进制和十进制之间的相互转换是最常见,也是我们必须要掌握的~

下面就对其进行介绍~

?二进制转换为十进制

我们知道进制转换成不同的进制时,每一位就会拥有不同的权重,而二进制就拥有2的权重。

如二进制数字101.11,其每一位对应的权重就是10的N次方。

注意: 小数部分的权重是

 1 0 1 . 1 1 2^2 2^1 2^0.2^-1 2^-2 

只需要将其二进制每一位乘以他的权重即可求出其值~

所以最后二进制数101.11转换为十进制数的结果为5.75

用进制转换器验证:

进制转换器


?十进制转换为二进制

十进制数转换为二进制较为复杂,需要拆分为两个步骤完成:

  1. 整数部分
  2. 小数部分

下面举一个实例演示。

比如要将十进制数字125.25转换为二进制数字。

首先转换整数部分,这里用画图的方式演示:

画图演示
所以最后得到的整数结果为:1111101

接下来转换小数部分,同样通过画图形式:

画图演示

所以最终小数部分结果为0.01

所以十进制数字125.25最终转换为二进制为:.01。

进制转换器验证:

进制转换器


?二进制与十六进制的相互转换

二进制与十六进制的相互转换与上文讲过的二进制与八进制之间的相互转换十分类似,接下来我们看~?

?二进制转换为十六进制

二进制转换为十六进制的形式和二进制转换为八进制非常类似,方法为:以小数点为分界,整数部分从最低位开始每4个二进制数字为一组,高位不够在更高位补0,小数部分从最高位开始每4个二进制数字为一组,低位不够在更低位补0。?

比如给出二进制数字.001001,要求转换为十六进制数字。

按要求分组:

1 0110 1100.0010 01 

不够位数补0:

0001 0110 1100.0010 0100 

按组分别转换:

0001 0110 1100.0010 0100 1 6 c . 2 4 

所以二进制数字.001001转换为十六进制为16c.24

用进制转换器验证:

进制转换器


?十六进制转换为二进制

例如将十六进制数5cf.3转换为二进制。

首先将十六进制数每一位拆开来看:

5 c f.3 

然后将每一位对应的十六进制数字转换为二进制:

 5 c f . 3 0101 1100 1111.0011 

转换的结果为0.0011

所以最后十六进制数字5cf.a3转换为二进制数的结果是:.0011

进制转换器验证:

进制转换器


?八进制与十进制的相互转换

*八进制与十进制之间的相互转换也是较为常见的一种,其转换和上文讲过的二进制与十进制的相互转换有异曲同工之处,接下来我们看看具体是怎么转换的~*?

?八进制转换为十进制

与二进制类似的,八进制每一位都拥有8n的权重,首先要将所有的权重标出,然后用每一位的值乘以其对应权重,左后求和即可得出结果~

例如将八进制数字54.42转换为十进制数字。

首先标出每一位所对应权重:

 5 4 . 4 2 8^1 8^0.8^-1 8^-2 

再将每一位乘以其对应权重求和:

  1. 整数部分:5✖8+4✖1
  2. 小数部分:4✖1/8+2✖1/64

最终结果为:44.53125

进制转换器验证:

进制转换器

?十进制转换为八进制

十进制转换为其他进制的方式是我们必须要掌握的~

十进制转换为八进制的方式和十进制转换为二进制类似,需要分为两部分:

  1. 整数部分
  2. 小数部分

其中整数部分的转换采用的方法是:将要转换的数字除以8,得到的余数作为最低位,再用除法得到的商作为被除数除以8,得到的余数最为次低位,以此类推,直到商为0为止。

而小数部分采用的转换方式是将小数部分乘以8,得到的积的整数部分作为二进制小数位的最高位,再将积的小数部分乘以8,得到的积的整数位作为二进制小数位的次高位,以此类推,直到积的小数部分为0为止。

光看文字不一定能够理解,举一个例子:

将十进制数132.5转换为八进制。

首先转换整数部分:

用画图的形式展示:

画图展示
所以整数部分结果为204

接下来转换小数部分:

同样通过画图的方式展示:

画图展示
所以小数部分的结果是4

最后,将整数部分与小数部分凭借,所以十进制数132.5转换为八进制的结果是204.4。


八进制与十六进制之间不能直接转换,需要通过转换为二进制或者十进制最后中间跳板,再完成转换


?十进制与十六进制的相互转换

其实本文看到这里就可以发现一定的规律,只要是涉及十进制的转换,都会涉及权重,看完本文后大家也可以自己通过特殊的理解总结~

?接下来分开讲解这两种进制之间的相互转换~

?十进制转换为十六进制

  1. 整数部分
  2. 小数部分

其中整数部分的转换采用的方法是:将要转换的数字除以16,得到的余数作为最低位,再用除法得到的商作为被除数除以16,得到的余数最为次低位,以此类推,直到商为0为止。

而小数部分采用的转换方式是将小数部分乘以16,得到的积的整数部分作为二进制小数位的最高位,再将积的小数部分乘以16,得到的积的整数位作为二进制小数位的次高位,以此类推,直到积的小数部分为0为止。

例如将十进制数32.25转换为十六进制

整数部分:

画图演示:

画图演示
所以整数部分的结果是20

小数部分:

画图演示:

画图演示

所以小数部分的结果是4

最后将整数部分和小数部分拼接

所以十进制数32.25转换为十六进制结果为:20.4

进制转换器验证:

进制转换器


?十六进制转换为十进制

与二进制转换为十进制和八进制转换为十进制类似,十六进制数的每一位也拥有自己的权重,只需要将每一位的权重标出,用十六进制数的每一位乘以其对应权重,最后相加即可。

例如要求将十六进制数4f.2转换为十进制。

首先,标出十六进制数的每一位权重:

 4 f . 2 16^1 16^0.16^-1 

将其对应相乘相加:

  1. 整数部分:4✖16+15✖1
  2. 小数部分:2✖1/16

所以,十六进制数4f.2转换为十进制的结果为79.125

进制转换器验证:

进制转换器


?总结

?以上就是本文的全部内容,其实其规则是很好理解的,并且其中也有很多规律,不如二进制/八进制/十六进制之间的转换都是将其分组依次转换;而涉及十进制之间的转换无非是权重问题和整数/小数区分转换的问题,只要认真总结,多举几个例子练习即可掌握,希望本文对大家能够起到帮助~

?最后,如果各位喜欢本文,不妨留下你的三连支持~

?点赞? + ?关注? + ✔️收藏✔️

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208450.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:34
下一篇 2026年3月19日 上午11:34


相关推荐

  • 神经网络学习小记录-番外篇——常见问题汇总

    神经网络学习小记录-番外篇——常见问题汇总神经网络学习小记录-番外篇——常见问题汇总前言问题汇总1、下载问题2、环境配置问题3、shape不匹配问题a、训练时shape不匹配问题b、预测时shape不匹配问题4、nomodule问题5、显存问题6、训练问题7、乱七八糟的问题前言搞个问题汇总吧,不然一个一个解释也挺难的。问题汇总1、下载问题问:up主,可以给我发一份代码吗,代码在哪里下载啊?答:Github上的地址就在视频简介里。复制一下就能进去下载了。问:up主,为什么我下载的代码里面,model_data下面没有.pth或者.h

    2022年5月4日
    90
  • python列表添加元素的方法_列表添加元素的三种方法

    python列表添加元素的方法_列表添加元素的三种方法欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗Ctrl+B斜体Ctrl+I引用Ctrl

    2025年8月11日
    5
  • css 布局的几种方式

    css 布局的几种方式前言 1table 布局 2flex 布局 2 1 盒模型 2 2display poistion2 3flexbox 布局 3float 布局前言 CSS 的布局应该是 CSS 体系中的重中之重了 主要的布局方式有 table 表格布局 早期 float 浮动布局和 flex 布局 还有针对于移动端的响应式布局 不论是工作还是面试都是非常重要的知识

    2026年3月20日
    2
  • webstorm激活教程(在线激活)

    webstorm激活教程(在线激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    93
  • Eclipse中Editor does not contain a main type 解决方法

    Eclipse中Editor does not contain a main type 解决方法Eclipse中Editordoesnotcontainamaintype解决方法1、问题再现2、原因当前的源代码(所有的包)没有被添加到buildpath中src目录出现错误3、解决方法…

    2022年6月1日
    47
  • Java获取当前时间/日期/时间戳及格式化总结,附代码

    Java获取当前时间/日期/时间戳及格式化总结,附代码拿来即用舒服了

    2025年9月21日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号