问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

进制转换详解:R进制转10进制和10进制转R进制

创作时间:
作者:
@小白创作中心

进制转换详解:R进制转10进制和10进制转R进制

引用
1
来源
1.
https://cloud.tencent.com/developer/article/2306892

进制转换是计算机科学中的基础概念,也是软考必考的项目。本文将详细介绍两种主要的进制转换方法:R进制转10进制和10进制转R进制。

零、使用场景

日常生活中通常使用十进制,但计算机底层都是采用二进制计算,所以会涉及到进制转换。

一、十进制转R进制(短除法)

样例一

除法的计算公式为:
被除数 ÷ 除数 = 商 + 余数

比如要将94转换为3进制,过程如下:

  • 被除数 94 除以 3,商为 31,余数为 1;
  • 被除数 31 除以 3,商为 10,余数为 1;
  • 被除数 10 除以 3,商为 3,余数为 1;
  • 被除数 3 除以 3,商为 1,余数为 0;
  • 被除数 1 除以 3,商为 0,余数为 1;

所以从下到上,答案就是 10111,如下图所示。

样例二

比如要将68转换为6进制,过程如下:

  • 被除数 68 除以 6,商为 11,余数为 2;
  • 被除数 11 除以 6,商为 1,余数为 5;
  • 被除数 1 除以 6,商为 0,余数为 1;

所以从下到上,答案就是 152,如下图所示。

程序验证

结果可以采用 Java 程序验证,相关代码如下。

public static void main(String[] args) {
    // 转换前数字
    Integer number = 94;
    // 转换结果
    String ans = Integer.toString(number,3);
    // 94 转换为 3进制,答案为 10111
    System.out.println(ans);
}

二、R进制转十进制(按权展开法)

将 R 进制数的每一位拆为幂次方形式,幂的底数为 R,指数为 K,K 是数位和小数点的有向距离,左边为正,右边为负。

样例三

16进制数 6A8 转 10 进制

  • 第一位 6,拆分为 6 乘 16 的 2 次方。
  • 第二位 A(即10),拆分为 10 乘 16 的 1 次方。
  • 第三位 8,拆分为 8 乘 16 的 0 次方。
  • 再将所有结果相加,最终得到 1701 的答案,如下图所示。

样例四

比如13进制数 8B7 转10进制

  • 第一位 8,拆分为 8 乘 13 的 2 次方。
  • 第二位 B(即11),拆分为11 乘 13 的 1 次方。
  • 第三位 7,拆分为 7 乘 13 的 0 次方。
  • 再将所有结果相加,最终得到 1502 的答案,如下图所示。

程序验证

结果可以采用 Java 程序验证,相关代码如下。

public static void main(String[] args) {
    String number = "8B7";
    Integer ans = Integer.parseInt(number,13);
    System.out.println(ans);
}

三、总结

本文详细介绍了进制转换的基本概念和方法,包括R进制转10进制和10进制转R进制的详细步骤,并通过具体样例和Java代码进行了演示。这些知识对于学习计算机科学和参加软考的考生来说都是非常重要的基础。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号