滚雪球学Java(26):Java进制转换


🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!


前言

在日常开发中,进制转换是一个相对常见的需求。比如在网络传输中,我们常常需要将数据以二进制的方式进行传输,而在前端开发中,我们常常需要将数据从十进制转化为十六进制来实现颜色的显示。因此,了解进制转换是程序员必备的技能之一。

摘要

本文将介绍 Java 中的进制转换方法。Java 中支持的进制包括二进制、八进制、十进制和十六进制。我们将分别介绍它们之间的转换方法,并给出相应的代码实例。

内容

1. 十进制转换成二进制

十进制转换成二进制的方法是不断地除以 2,直到商为 0。将每个商的余数从下往上排列就得到了二进制表示。

代码实现如下:

public static String decToBinary(int decimal) {StringBuilder binary = new StringBuilder();while (decimal > 0) {binary.append(decimal % 2);decimal /= 2;}return binary.reverse().toString();
}

2. 十进制转换成八进制

十进制转换成八进制的方法与转换成二进制的方法类似,只是每次除以的数变为了 8。

代码实现如下:

public static String decToOctal(int decimal) {StringBuilder octal = new StringBuilder();while (decimal > 0) {octal.append(decimal % 8);decimal /= 8;}return octal.reverse().toString();
}

3. 十进制转换成十六进制

十进制转换成十六进制需要用到十六进制中的字母,因此需要将余数与字母对应起来。Java 中提供了 Integer.toHexString() 方法可以直接将一个十进制数转换成十六进制字符串。

代码实现如下:

public static String decToHex(int decimal) {return Integer.toHexString(decimal);
}

4. 二进制转换成十进制

二进制转换成十进制方法与十进制转换成二进制的方法类似,只是每次求余的数变为了 2,乘的数变为了 2 的幂。

代码实现如下:

public static int binaryToDec(String binary) {int decimal = 0;int power = 0;for (int i = binary.length() - 1; i >= 0; i--) {int digit = binary.charAt(i) - '0';decimal += digit * Math.pow(2, power);power++;}return decimal;
}

5. 八进制转换成十进制

八进制转换成十进制的方法与二进制转换成十进制的方法类似,只是每次求余的数变为了 8。

代码实现如下:

public static int octalToDec(String octal) {int decimal = 0;int power = 0;for (int i = octal.length() - 1; i >= 0; i--) {int digit = octal.charAt(i) - '0';decimal += digit * Math.pow(8, power);power++;}return decimal;
}

6. 十六进制转换成十进制

在 Java 中,我们可以使用 Integer.parseInt() 方法将一个十六进制字符串转换成一个十进制数。

代码实现如下:

public static int hexToDec(String hex) {return Integer.parseInt(hex, 16);
}

代码方法介绍

decToBinary(int decimal)

该方法将一个十进制数转换成一个二进制字符串。

decToOctal(int decimal)

该方法将一个十进制数转换成一个八进制字符串。

decToHex(int decimal)

该方法将一个十进制数转换成一个十六进制字符串。

binaryToDec(String binary)

该方法将一个二进制字符串转换成一个十进制数。

octalToDec(String octal)

该方法将一个八进制字符串转换成一个十进制数。

hexToDec(String hex)

该方法将一个十六进制字符串转换成一个十进制数。

测试用例

  • 十进制转换成二进制:

    System.out.println(decToBinary(10));  // 1010
    System.out.println(decToBinary(255)); // 11111111
    
  • 十进制转换成八进制:

    System.out.println(decToOctal(8));    // 10
    System.out.println(decToOctal(255));  // 377
    
  • 十进制转换成十六进制:

    System.out.println(decToHex(16));     // 10
    System.out.println(decToHex(255));    // ff
    
  • 二进制转换成十进制:

    System.out.println(binaryToDec("1010"));  // 10
    System.out.println(binaryToDec("11111111")); // 255
    
  • 八进制转换成十进制:

    System.out.println(octalToDec("10"));   // 8
    System.out.println(octalToDec("377"));  // 255
    
  • 十六进制转换成十进制:

    System.out.println(hexToDec("10"));     // 16
    System.out.println(hexToDec("ff"));     // 255
    

全文小结

本文主要介绍了 Java 中的进制转换方法,包括十进制、二进制、八进制和十六进制之间的转换。通过本文的介绍,我们可以掌握 Java 中进制转换的各种方法,并且在实际开发中灵活应用。

附录源码

  如上涉及所有源码均已上传同步在Gitee,提供给同学们一对一参考学习,辅助你更迅速的掌握。

☀️建议/推荐你


  无论你是计算机专业的学生,还是对编程有兴趣的小伙伴,都建议直接毫无顾忌的学习此专栏「滚雪球学Java」,bug菌郑重承诺,凡是学习此专栏的同学,均能获取到所需的知识和技能,全网最快速入门Java编程,就像滚雪球一样,越滚越大,指数级提升。

📣关于我


我是bug菌,CSDN | 掘金 | infoQ | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,华为云 | 阿里云| 腾讯云等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/83445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

19异常的学习笔记

异常 很重要,有利于我们平时处理问题 异常就是代表程序出现了问题 常见的异常比如说 数组越界除法除0 异常的体系是什么 java.lang.Throwable Error Exception RuntimeException 其他异常 Error 代表的是系统级别的错误,也就是一旦系统出现问题&…

由于数字化转型对集成和扩展性的要求,定制化需求难以满足,百数低代码服务商该如何破局?

当政策、技术环境的日益成熟,数字化转型逐步成为企业发展的必选项,企业数字化转型不再是一道选择题,而是决定其生存发展的必由之路。通过数字化转型升级生产方式、管理模式和组织形式,激发内生动力,成为企业顺应时代变…

最新适合小白前端 Javascript 高级常见知识点详细教程(每周更新中)

1. window.onload 窗口或者页面的加载事件&#xff0c;当文档内容完全加载完成会触发的事件&#xff08;包括图形&#xff0c;JS脚本&#xff0c;CSS文件&#xff09;&#xff0c;就会调用处理的函数。 <button>点击</button> <script> btn document.q…

python项目2to3方案预研

目录 官方工具2to3工具安装参数解释基本使用工具缺陷 future工具安装参数解释基本使用工具缺陷 python-modernize工具安装参数解释基本使用工具缺陷 pyupgrade工具安装参数解释基本使用工具缺陷 对比 官方工具2to3 2to3 是Python官方提供的用于将Python 2代码转换为Python 3代…

如何在 CentOS 8 上安装 OpenCV?

OpenCV( 开源计算机视觉库)是一个开放源代码计算机视觉库&#xff0c;支持所有主要操作系统。它可以利用多核处理的优势&#xff0c;并具有 GPU 加速功能以实现实时操作。 OpenCV 的用途非常广泛&#xff0c;包括医学图像分析&#xff0c;拼接街景图像&#xff0c;监视视频&am…

单例模式(饿汉模式 懒汉模式)与一些特殊类设计

文章目录 一、不能被拷贝的类 二、只能在堆上创建类对象 三、只能在栈上创建类对象 四、不能被继承的类 五、单例模式 5、1 什么是单例模式 5、2 什么是设计模式 5、3 单例模式的实现 5、3、1 饿汉模式 5、3、1 懒汉模式 &#x1f64b;‍♂️ 作者&#xff1a;Ggggggtm &#x…

VM虚拟机CentOS7.9x64 LVM硬盘扩容

软件版本&#xff1a;VMWare Workstation14 虚拟机CentOS 7.9X64位 GParted 0.33.0 一、虚拟机安装gparted软件 sudo yum install epel-release sudo yum install gparted sudo yum install yum-utils git gnome-common gcc-c sudo yum-builddep gparted 二、关闭虚拟机&a…

一、Java简介

基础知识 1.1.Java简介1.1.1.什么是Java语言1.1.2.Java应用的领域1.1.3.Java版本1.1.4.如何学好Java1.1.5.Java API文档1.1.6.Java语言特性 —————————————————————————————————————————————————— —————————————…

MySQL学习系列(1)-每天学习10个知识

目录 1. SQL 和 MySQL2. JOIN 类型3. 索引4. ACID5. 优化MySQL查询性能6. 创建MySQL存储过程的步骤7. 范式和反范式设计8. SQL注入9. GROUP BY 和 HAVING10. UNION 和 UNION ALL &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&#xff01; ⭐️ 收藏&#xff0c;你的…

java 性能分析:如何提高 Java 程序的性能

示例示例Java性能分析是指通过对Java程序进行分析&#xff0c;以改善应用程序的性能。它可以帮助开发人员确定程序中的性能瓶颈&#xff0c;并对其进行优化。Java性能分析可以通过多种方式完成&#xff0c;比如使用JVM内置的性能分析工具&#xff0c;如jstat&#xff0c;jmap&a…

ffplay源码解析-main入口函数

main入口函数 初始化 变量、缓存区、SDL窗口初始化等 int main(int argc, char **argv) {int flags;VideoState *is; // av_log_set_level(AV_LOG_TRACE);init_dynload();av_log_set_flags(AV_LOG_SKIP_REPEATED);parse_loglevel(argc, argv, options);/// av_log_set_le…

Hive行转列[一行拆分成多行/一列拆分成多列]

场景&#xff1a; hive有张表armmttxn_tmp&#xff0c;其中有一个字段lot_number&#xff0c;该字段以逗号分隔开多个值&#xff0c;每个值又以冒号来分割料号和数量&#xff0c;如&#xff1a;A3220089:-40,A3220090:-40,A3220091:-40,A3220083:-40,A3220087:-40,A3220086:-4…

深入理解JVM虚拟机第九篇:详细介绍JVM中的双亲委派机制工作原理和机制

文章目录 一:双亲委派机制 1:工作原理 2:代码展示 3:异常代码展示

用Jmeter进行压测详解

简介&#xff1a; 1.概述 一款工具&#xff0c;功能往往是很多的&#xff0c;细枝末节的地方也很多&#xff0c;实际的测试工作中&#xff0c;绝大多数场景会用到的也就是一些核心功能&#xff0c;根本不需要我们事无巨细的去掌握工具的所有功能。所以本文将用带价最小的方式讲…

软路由和硬路由的区别是什么,性价比与可玩性分析

软路由和硬路由是两种不同类型的路由器设备&#xff0c;它们在基本原理、功能、性能和灵活性等方面存在一些区别&#xff1a; 硬件&#xff1a;软路由是基于一台普通的计算机或服务器&#xff0c;通过软件来实现路由器的功能&#xff1b;而硬路由是专门设计的硬件设备&#xff…

Vue前端开发中的输入限制与输入规则探究

前言 在Vue前端开发中&#xff0c;我们经常需要对用户的输入进行限制和规范&#xff0c;以确保数据的准确性和安全性。本文将介绍如何使用Vue的el-input组件来实现输入限制和输入规则&#xff0c;并提供相应的代码示例。 一、输入限制 最大长度限制 我们可以使用maxlength属…

CCC数字钥匙设计【BLE】--URSK管理

1、URSK创建流程 URSK的英文全称为&#xff1a;UWB Ranging Secret Key&#xff0c;即UWB安全测距密钥。 在车主配对时会生成URSK&#xff0c;且在车主配对期间&#xff0c;车辆不得尝试生成第二个URSK。 URSK示例: ed07a80d2beb00f785af2627c96ae7c118504243cb2c3226b3679da…

抖音seo账号矩阵源码系统

1. 开通多个抖音账号&#xff0c;并将它们归纳为一个账号矩阵系统。 2. 建立一个统一的账号管理平台&#xff0c;以便对这些账号进行集中管理&#xff0c;包括账号信息、内容发布、社区交互等。 3. 招募专业的运营团队&#xff0c;对每个账号进行精细化运营&#xff0c;包括内…

CSS 响应式设计:图片

文章目录 图片使用 width 属性使用 max-width 属性网页中添加图片背景图片不同设备显示不同图片HTML5 \<picture> 元素 图片 在CSS中&#xff0c;可以通过以下方法实现响应式设计中的图片处理&#xff1a; 使用 max-width 属性&#xff1a;将图片的最大宽度设置为 100%…

年龄大了转嵌入式有机会吗?

年龄大了转嵌入式有机会吗&#xff1f; 首先&#xff0c;说下结论&#xff1a;年龄并不是限制转行嵌入式软件开发的因素&#xff0c;只要具备一定的编程和电子基础知识&#xff0c;认真学习和实践&#xff0c;是可以成为优秀的嵌入式软件开发工程师的。最近很多小伙伴找我&…