Java 中常用的进制转换
前言
所谓进制转换,就是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”和“位权”所构成。其中基数是指进位计数制中所采用的数码的个数,逢 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 中常用的进制转换相关推荐
- Java中数字的进制转换
常用的进制类型:二进制.八进制.十进制.十六进制.其中十进制是人类计数最常用的进制,大部分操作都是以十进制作为桥梁进行转换. 1 常用进制数字声明方式 常用的进制,除十进制之外,在代码中声明其它进制数 ...
- Java中四种进制转换
进制介绍 举例: 不同进制转换运算 Java中二进制使用0b(0B)前缀来表示,不足一字节需高位补零,凑成8位. Java中八进制使用0前缀来表示. Java中十六进制使用0x(0X)来表示,a~e( ...
- Java基础--数据类型及进制转换
1.Dos常用命令符 -d: 盘符切换(切换到哪个盘输入那个盘符) -dir(directory) 列出当前目录下 的文件以及文件夹 -md(make directory) 创建目录,md之后空格加文 ...
- SpringBoot项目中计量单位与进制转换问题解决措施及数据校验怎么操作
写在前面: 继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录.若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用 ...
- java的代码之进制转换(2,8,16与10进制转换)
文章目录 一.2,8,16进制转换成10进制 二.10进制转换成2,8,16进制返回STRING 三.自己写的十进制转换成十六进制 一.2,8,16进制转换成10进制 使用Integer.parseI ...
- oracle中如何转换成数字,如何在Oracle中实现数字进制转换完全版?
以下内容包括: 1).提供两个进制转换包 2).提供进制转换的一些简便方法 3).提供进制转换的不同方法的性能评估 1.两个进制转换包 1)包PKG_DM_BASE_CONV(推荐) CREATE O ...
- Java各类型数的进制转换
转载自方凌飞2014551539 public class Main {public static void main(String[] args) {// TODO Auto-generated m ...
- 在计算机中常用的进制有哪些,计算机中常用的数的进制主要有.doc
<计算机中常用的数的进制主要有.doc>由会员分享,可在线阅读,更多相关<计算机中常用的数的进制主要有.doc(4页珍藏版)>请在文库网上搜索. 1..计算机中常用的数的进制主 ...
- 计算机系统中常用的进制,计算机中常用 二进制 八进制 十进制 十六进制的特点...
计算机中常用的计数制 用若干数位(由数码表示)的组合去表示一个数,各个数位之间是什么关系,即逢"几"进位,这就是进 位计数制的问题.也就是数制问题.数制,即进位计数制,是人们利用数 ...
最新文章
- webservice restful一个小例子
- 【java】简单的方式实现文本文件的读写
- Processing 字体变形
- leetcode 115. 不同的子序列(dp)
- SQL字符串中单引号与换行符的转义
- Asp.net开发环境的设置所遇到的问题
- 浏览器内存泄漏问题的跟踪与解决(转)
- mysql 单向复制_Mysql 复制(Replication)实现
- 查询SQL的null与''
- Entity Framework Fluent API
- 面向流批一体的 Flink Runtime 新进展
- Egret + P2物理引擎入门教程
- DeepMOT: A Differentiable Framework for Training Multiple Object Trackers
- oracle12c 开启em,Oracle12C的EM无法访问怎么办?
- Oracle 18C RAC安装利用iSCSI实现部署
- 计算机丢失iggy,我似乎已经丢失了什么
- Codeforces Round #521 (Div. 3) B. Disturbed People
- FusionCharts简单教程(一)---建立第一个FusionCharts图形
- 【前端面试题】原型和原型链-js
- 52.一文带你理解ARM程序的编译及执行过程
热门文章
- 薛定谔软件教程--生成对接盒子(4)
- [cocos2dx_Lua]quick中的组件Component
- AllenNLP源码拓展——中文分词
- Java市场饱和?谁在忽悠你?
- POV-RAY教程系列 - 介绍(1)
- 一篇文章讲透单片机的RAM和FLASH
- 改进的 A*算法的路径规划(路径规划+代码+毕业设计)
- 华为nova2s云相册在哪里_华为nova2s隐藏相册在哪 | 手游网游页游攻略大全
- 在Excel中用函数实现数字“四舍六入五凑偶”
- 我不信这些技术名词的发音你都能读对!