前言

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

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

二进制

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

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

十进制

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

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

八进制

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

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

十六进制

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

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

例如,二进制的 、1111100111010111 可以转换为十六进制中的F9D7。

常用进制转换

当然,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. Java中数字的进制转换

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

  2. Java中四种进制转换

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

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

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

  4. SpringBoot项目中计量单位与进制转换问题解决措施及数据校验怎么操作

    写在前面: 继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录.若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用 ...

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

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

  6. oracle中如何转换成数字,如何在Oracle中实现数字进制转换完全版?

    以下内容包括: 1).提供两个进制转换包 2).提供进制转换的一些简便方法 3).提供进制转换的不同方法的性能评估 1.两个进制转换包 1)包PKG_DM_BASE_CONV(推荐) CREATE O ...

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

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

  8. 在计算机中常用的进制有哪些,计算机中常用的数的进制主要有.doc

    <计算机中常用的数的进制主要有.doc>由会员分享,可在线阅读,更多相关<计算机中常用的数的进制主要有.doc(4页珍藏版)>请在文库网上搜索. 1..计算机中常用的数的进制主 ...

  9. 计算机系统中常用的进制,计算机中常用 二进制 八进制 十进制 十六进制的特点...

    计算机中常用的计数制 用若干数位(由数码表示)的组合去表示一个数,各个数位之间是什么关系,即逢"几"进位,这就是进 位计数制的问题.也就是数制问题.数制,即进位计数制,是人们利用数 ...

最新文章

  1. webservice restful一个小例子
  2. 【java】简单的方式实现文本文件的读写
  3. Processing 字体变形
  4. leetcode 115. 不同的子序列(dp)
  5. SQL字符串中单引号与换行符的转义
  6. Asp.net开发环境的设置所遇到的问题
  7. 浏览器内存泄漏问题的跟踪与解决(转)
  8. mysql 单向复制_Mysql 复制(Replication)实现
  9. 查询SQL的null与''
  10. Entity Framework Fluent API
  11. 面向流批一体的 Flink Runtime 新进展
  12. Egret + P2物理引擎入门教程
  13. DeepMOT: A Differentiable Framework for Training Multiple Object Trackers
  14. oracle12c 开启em,Oracle12C的EM无法访问怎么办?
  15. Oracle 18C RAC安装利用iSCSI实现部署
  16. 计算机丢失iggy,我似乎已经丢失了什么
  17. Codeforces Round #521 (Div. 3) B. Disturbed People
  18. FusionCharts简单教程(一)---建立第一个FusionCharts图形
  19. 【前端面试题】原型和原型链-js
  20. 52.一文带你理解ARM程序的编译及执行过程

热门文章

  1. 薛定谔软件教程--生成对接盒子(4)
  2. [cocos2dx_Lua]quick中的组件Component
  3. AllenNLP源码拓展——中文分词
  4. Java市场饱和?谁在忽悠你?
  5. POV-RAY教程系列 - 介绍(1)
  6. 一篇文章讲透单片机的RAM和FLASH
  7. 改进的 A*算法的路径规划(路径规划+代码+毕业设计)
  8. 华为nova2s云相册在哪里_华为nova2s隐藏相册在哪 | 手游网游页游攻略大全
  9. 在Excel中用函数实现数字“四舍六入五凑偶”
  10. 我不信这些技术名词的发音你都能读对!