Java 中的进制转换

article/2025/9/24 0:30:47

前言

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

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

二进制

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

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

(1011) 2 =1∗2 3 +0∗2 2 +1∗2 1 +1∗2 0 =(11) 10

十进制

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

(15) 10 =(1111) 2

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

八进制

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

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

例如,二进制的111101011110 可以转换为八进制中的 7536。

十六进制

所谓十六进制,就是每 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 中如何进行十进制向其他进制的转换方法,以及如何将其他进制转换为十进制。


http://chatgpt.dhexx.cn/article/rsTLdJ7U.shtml

相关文章

Java十进制转换为二进制

Java十进制到二进制转换的3种不同方法。 1. Integer.toString()方法 我们可以使用Integer类的toString()方法将十进制数转换为二进制数。此方法有两个参数,第一个参数是十进制数,第二个参数是我们要转换的基…

Java 菜鸟入门 | 常用进制转换

前言 所谓进制转换,就是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”和“位权”所构成。其中基数是指进位计数制中所采用的数码的个数,逢 n 进 1 中的 n 就是基数。而位权则指的是进位制中每一个固定位置所对应的单位制&am…

Java进制转换(二进制、八进制、十进制、十六进制)

在Java编程中,经常需要进行不同进制之间的转换,包括二进制、八进制、十进制和十六进制。本篇博文将详细介绍如何在Java中实现这些进制之间的转换。 目录 一、十进制与其他进制转换1. 十进制转二进制2. 十进制转八进制3. 十进制转十六进制 二、其他进制与…

java进制转换方法

一、十进制向二、八、十六进制的转换 方法一: Integer.toBinaryString(i)表示十进制转为二进制 Integer.toOctalString(i)表示十进制转为八进制 Integer.toHexString(i)表示十进制转为十六进制 public static void main(String[] args) {String num1 Integer.toBi…

Quartz定时任务框架(一):概述和Job、JobDetail详解

文章目录 Quartz定时任务框架核心概念Hello World 入门 深入学习原理概述Job和JobDetailJobDataMapJob实例Job的数据状态和并发Job的其它特性 Quartz定时任务框架 核心概念 JobJobDetailTriggerScheduler Job: 既然是定时任务,任务任务对吧,job就是你…

struts2+quartz定时任务

最近有需求要写一个定时任务 目的是更新一些员工/人员与部门之间的关系 项目用的是struts2 当我加了spring的jar包之后写了一个定时任务 项目经理不让用spring 就修改一下 这次贴个全的 下面是任务类 package com.timetask.action; import java.io.BufferedWriter; import…

Quartz定时任务框架使用教程详解

Quartz定时任务框架学习 什么是QuartzQuartz依赖引入使用 QuartzQuartz API,Jobs和TriggersJob 和 Trigger为什么既有 Job,又有 Trigger 呢?Key Job与JobDetail介绍为什么设计成JobDetail Job,不直接使用JobJobDataMapJob实例Job…

quartz定时任务不执行

quartz定时任务执行一段时间不执行的原因 数据库表QRTZ_TRIGGERS 里的TRIGGER_STATE 字段的值自动修改为ERROR了 ,quartz定时任务是不扫描这种ERROR情况. 之所以出现ERROR 原因在于job里有bug,导致quartz自动将状态改变,然后quartz不执行ERROR状态的job. 1.查找原因 原因如下图…

SpringBoot结合Quartz实现定时任务

《从零打造项目》系列文章 工具 比MyBatis Generator更强大的代码生成器 ORM框架选型 SpringBoot项目基础设施搭建SpringBoot集成Mybatis项目实操SpringBoot集成MybatisPlus项目实操SpringBoot集成Spring Data JPA项目实操 数据库变更管理 数据库变更管理:Liquibase…

Quartz定时任务不定时执行

请移步: https://editor.csdn.net/md/?articleId126933515 手动执行才执行。 cron表达式是 1分钟执行3次,一直正常的。 cron "0 */20 * * * ?"依次报错: 后定时任务不再执行了。 手动触发可以正常执行。 Job taskJob (Job…

Springboot 使用quartz 定时任务 增删改查

前段时间公司项目用到了 定时任务 所以写了一篇定时任务的文章 ,浏览量还不错 , Springboot 整合定时任务 ) 所以就准备写第二篇, 如果你是一名Java工程师,你也可以会看到如下的页面 ,去添加定时任务 定时任务展示 :…

JAVA - Quartz 定时任务_启动原理

JAVA - Quartz 定时任务_启动原理 前言 在开发过程中,我们会用定时任务来执行一些操作,例如定时去捞取流水重试业务、定时去消息中间件获取消息等等相关需求 简单的定时任务实现可以借助Spring提供的 Scheduled 注解 详细看 Spring 原理之 Scheduled …

如何应用quartz定时任务?

Quartz可以用来做什么? Quartz是一个强大任务调度框架,我工作时候会在这些情况下使用到quartz框架,当然还有很多的应用场景,在这里只列举2个实际用到的 餐厅系统会在每周四晚上的22点自动审核并生成报表人事系统会在每天早晨8点…

Quartz定时任务基础学习

Quartz基础笔记 前言 1、什么是Quartz Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目。 2、Quartz的运行环境是什么? Quartz可以运行嵌入在一个独立式应用程序Quartz可以在应用服务器或者Servlet容器实例化,并且参与事务Quartz可…

Quartz定时任务

Java实现定时任务的方式 一、线程等待(不建议使用,任务复杂时存在内存泄露风险) Thread myThread new Thread(new Runnable() {Overridepublic void run() {while (true) {System.out.println("TestThreadWait is called!");try…

java定时任务Quartz整理

目录 一、Quartz介绍 二、Quartz的组成 三、使用java实现一个简单的Quartz例子 四、使用Springboot整合Quartz定时任务框架 五、使用Springbootmybatis整合Quartz定时任务框架实现定时向数据库插入一条数据 六、总结 七、参考资料 一、Quartz介绍 quartz是一种基于java…

Quartz之定时任务

一 基础概念 1.什么是Quartz? Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于 java.util.Timer。但是相较于Timer, Quartz增加了很多功能:(1).持久性…

定时任务框架Quartz

目录 一、Quartzh介绍 1、Quartz的定义: 2、Quartz完成定时任务的原理: 二、cron表达式 1、cron表达式定义 2、cron表达式规范 三、spring自带调度器 四、Quartz内存版集成基本使用 1、关于Quartz内存版集成的步骤 1、先到启动类中写好集成的步骤 2、…

定时任务:Quartz 详解

定时任务:Quartz 详解 文章目录 定时任务:Quartz 详解1 Quartz是什么?2 Quartz核心组成3 Quartz核心模块理解3.1 用工厂模式理解 Quartz 的设计机制:3.2 用流程图理解 Quartz 的核心模块关系: 4 Quartz详解4.1 Quartz的…

Linux 环境下的 for循环嵌套学习

题目&#xff1a;输出下面的 4*5 的矩阵&#xff1a; 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 解: 首先打开Xfce终端&#xff0c;创建c文件&#xff0c; 并用gedit记事本打开它。 touch zhanglong.c gedit zhanglong.c之后输入代码&#xff1a; #include<std…