前言

所谓进制转换,就是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”和“位权”所构成。其中基数是指进位计数制中所采用的数码的个数,逢 n 进 1 中的 n 就是基数。而位权则指的是进位制中每一个固定位置所对应的单位制,而每一种进制中的某一个数的每位上都有一个权值 m,而且权值是位数减一,比如个位上的数的权值为 0(位数 1 - 1 = 0),而十位的权值为 1(位数 2 - 1 = 1)。

在 Java 学习中,我们难免会和各种进制打交道。今天就来看看,在 Java 中最常用的几个进制的相关概念,以及如何利用 Java 来实现他们之间的相互转换!

二进制

二进制是计算机中采用最广泛的一种数制,用 0 和 1 两个数码来表示,其进位规则是逢二进一,而借位规则则是借一当二。

如果要将二进制转换为十进制,则采用 按权展开求和方法,其步骤是先将二进制的数写成加权系数展开式,然后再更具十进制的加法规则进行求和。

(1011)2=1∗23+0∗22+1∗21+1∗20=(11)10(1011)_2=1*2^3+0*2^2+1*2^1+1*2^0 = (11)_{10}(1011)2​=1∗23+0∗22+1∗21+1∗20=(11)10​

十进制

而一个十进制数要转换为二进制数,则需要将整数和小数部分分别转换,最后再进行组合。其中,整数部分采用除二取余,逆序排序的方法。具体方法是用 2 来整除一个十进制数,从而得到一个商和余数;然后再用 2 去除以商,从而又得到一个商和余数,重复这个步骤,直到最后得到的商小于 1 时为止。最后把按照得到余数的先后顺序,逆序依次排列,得到的数即为这个十进制数的二进制表示。

(15)10=(1111)2(15)_{10}=(1111)_2(15)10​=(1111)2​

小数部分则不同于整数部分,小数部分要使用乘 2 取整法,即用十进制的小数部分乘以 2,然后取结果的整数部分,然后再用剩下的小数重复刚才的步骤,直到最后剩余的小数为 0 时停止。最后将每次得到的整数部分按照先后顺序正序排列,从而得到对应的二进制表示。

(0.25)10=(0.01)2(0.25)_{10}=(0.01)_2(0.25)10​=(0.01)2​

八进制

所谓八进制,就是每 3 位二进制作为一个单元,其中最小的数是 0,最大的数是 7,一共 8 个数字。

要将二进制的数转换为八进制,需要将 3 个连续的数拼成一组,然后再独立转成八进制中的数字。

例如,二进制的 111101011110111101011110111101011110 可以转换为八进制中的 753675367536。

十六进制

所谓十六进制,就是每 4 位二进制作为一个单元,其中最小数是 0,最大数是 15,一共 16 个数字,分别用 0 ~ 9、A、B、C、D、E、F 表示。

要将二进制转换为十六进制,需要将 4 个连续的数拼成一组,然后再独立转换为十六进制中对应的数字。

例如,二进制的 111110011101011111111001110101111111100111010111 可以转换为十六进制中的 F9D7F9D7F9D7。

常用进制转换

当然,Java 中也已经将常用的进制转换方法封装好了,我们只需要调用对应方法即可。

转换 方法 返回
十进制 -> 二进制 Integer.toBinary(int num) 二进制字符串
十进制 -> 八进制 Integer.toOctalString(int num) 八进制字符串
十进制 -> 十六进制 Integer.toHexString(int num) 十六进制字符串
十进制 -> N 进制 Integer.toString(int num, int N) N 进制字符串
public class Main {public static void main(String[] args) {int num = 200;System.out.println(num + " 的二进制是:" + Integer.toBinaryString(num));System.out.println(num + " 的八进制是:" + Integer.toOctalString(num));System.out.println(num + " 的十六进制是:" + Integer.toHexString(num));System.out.println(num + " 的三进制是:" + Integer.toString(num, 3));}
}

相反的,如果我们要将一个 N 进制的字符串 str 转换为十进制数,那么可以使用以下方法。

转换 方法 返回
N 进制 -> 十进制 Integer.parseInt(String str, int N) 十进制数
public class Main {public static void main(String[] args) {String str = "21104";int N = 5;System.out.println(str + " 的十进制是:" + Integer.parseInt(str, N));}
}

总结

以上就是有关二进制、十进制、八进制、十六进制相关的知识点了。此外还介绍了 Java 中如何进行十进制向其他进制的转换方法,以及如何将其他进制转换为十进制。如果你刚好这些内容对你有所帮助,那就来个一键三连吧!

Java 菜鸟入门 | 常用进制转换相关推荐

  1. python常用进制转换の方法

    python常用进制转换の方法 (正整数)任意进制转十进制 1.int()函数 ''' 描述 int() 函数用于将一个字符串或数字转换为整型. 语法 class int(x, base=10) 参数 ...

  2. Java基础--数据类型及进制转换

    1.Dos常用命令符 -d: 盘符切换(切换到哪个盘输入那个盘符) -dir(directory) 列出当前目录下 的文件以及文件夹 -md(make directory) 创建目录,md之后空格加文 ...

  3. Java中数字的进制转换

    常用的进制类型:二进制.八进制.十进制.十六进制.其中十进制是人类计数最常用的进制,大部分操作都是以十进制作为桥梁进行转换. 1 常用进制数字声明方式 常用的进制,除十进制之外,在代码中声明其它进制数 ...

  4. Java中四种进制转换

    进制介绍 举例: 不同进制转换运算 Java中二进制使用0b(0B)前缀来表示,不足一字节需高位补零,凑成8位. Java中八进制使用0前缀来表示. Java中十六进制使用0x(0X)来表示,a~e( ...

  5. java的代码之进制转换(2,8,16与10进制转换)

    文章目录 一.2,8,16进制转换成10进制 二.10进制转换成2,8,16进制返回STRING 三.自己写的十进制转换成十六进制 一.2,8,16进制转换成10进制 使用Integer.parseI ...

  6. 关于C语言的一个简单工具类(包含常用进制转换和CRC,MD5,BBC)

    目录 一. 前言 二. 进制转换和格式控制 十进制转为十六进制函数 十六进制字符串转换成十六进制数组 把字符串中的空格符号删除 比较两个数组之间是否相同 命令响应数据中查找关键字 16位数据高低字节互 ...

  7. Java各类型数的进制转换

    转载自方凌飞2014551539 public class Main {public static void main(String[] args) {// TODO Auto-generated m ...

  8. python常用进制转换

    整数之间转换 # 1. 10 -> 16 hex(number)# 2. 10 -> 2 bin(number)# 3. 10 -> 8 oct(number)# 4. x进制 -& ...

  9. Python入门习题----进制转换

    [问题描述]编写一个程序:将输入的一个N进制整数转换成M进制数(N和M在2到16进制之间),                      要求:N进制数和M进制数均以字符串方式存储. [输入形式]输入的 ...

  10. 【HDU - 5050 】Divided Land (Java大数,大数进制转换,大数gcd)

    题干: It's time to fight the local despots and redistribute the land. There is a rectangular piece of ...

最新文章

  1. icc校色文件使用教程_Flink教程-flink 1.11使用sql将流式数据写入文件系统
  2. 如何制止OpenSSH漏洞?
  3. 模拟简单计算器及比较大小
  4. 使用Linux命令来发送信息
  5. javabean反射改字段内容_java反射机制给实体类相同字段自动赋值实例
  6. python正确的字符串常量_4.1 字符串常量(python)
  7. 客户要求ASP.NET Core API返回特定格式,怎么办?(续2)
  8. JQuery 方法查询大全
  9. Mongodb数据库安装
  10. windows server 2008 远程桌面(授权、普通用户登录)
  11. 华为设备配置IGMP基本功能
  12. 粒子群算法的几个适应度评价函数
  13. 这个“国宝级”景区,被誉为世界第八大奇迹,形成原因是个谜
  14. 课程设计——模仿网易云UI设计基础(超简单版)
  15. 分布式定时任务调度平台Elastic-Job技术详解
  16. java实现处理无限层级树形结构
  17. HCIE-Routing Switching实验考试延期至2022年12月31日
  18. 极验滑块验证码破解最新版
  19. 微信投票html5页面制作,如何制作微信投票活动
  20. c语言随机生成四则运算10道,c语言编10道四则运算题

热门文章

  1. 【行测】图形找规律类题目
  2. MySQL安装及应用合集(4):MySQL库表基本操作-增删改查
  3. 人脸识别系统落地酒店 刷脸入住更安全
  4. python文件和数据格式化
  5. 二元函数对xy同时求导_《高等数学》微课视频“二元函数的全微分求积”录音...
  6. OpenShift Origin 疑难杂症
  7. 漫画 | 为什么美国人发明了互联网?
  8. NB-IoT蜂窝窄带物联网概念
  9. 思维导图的种类及应用,思维导图教程
  10. 身份证号归属地数据库