滚雪球学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,一经查实,立即删除!

相关文章

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

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

最新适合小白前端 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代…

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

文章目录 一、不能被拷贝的类 二、只能在堆上创建类对象 三、只能在栈上创建类对象 四、不能被继承的类 五、单例模式 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…

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

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

用Jmeter进行压测详解

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

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;包括内…

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

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

一、【漏洞复现系列】Tomcat文件上传 (CVE-2017-12615)

1.1、漏洞原理 描述: Tomcat 是一个小型的轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP 程序的首选。 攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 的webshell文件&#x…

Java线上故障排查(CPU、磁盘、内存、网络、GC)+JVM性能调优监控工具+JVM常用参数和命令

CPU/堆/类/线程 根据服务部署和项目架构&#xff0c;从如下几个方面排查&#xff1a; &#xff08;1&#xff09;运用服务器&#xff1a;排查内存&#xff0c;cpu,请求数等&#xff1b; &#xff08;2&#xff09;文件图片服务器&#xff1a;排查内存&#xff0c;cpu,请求数等…

R语言-关于颜色

目录 颜色 示例 R 颜色板 参考&#xff1a; 颜色 什么场景会用到颜色&#xff1f;比如在绘图过程中&#xff0c;为了让图更好看&#xff0c;有的时候&#xff0c;需要选择使用不同的颜色进行绘制或者填充。本文提供了R颜色的相关参数。 在R中&#xff0c;可以通过颜色下标…

摸鱼也摸鱼之点灯游戏自动求解

游戏 变色方块 世上最难智力游戏 (yanhaijing.com) 脚本 新建文件夹&#xff0c;命名为Inverter 在文件夹下新建inverter.js文件&#xff0c;内容如下 "use strict";function getA() {let a [];let level parseInt(document.querySelector("#cur-level&q…

解决 SQLyog 连接 MySQL8.0+ 报错:错误号码2058

文章目录 一、问题现象二、原因分析三、解决方案1. 方案1&#xff1a;更新SQLyog版本2. 方案2&#xff1a;修改用户的授权插件3. 方案3&#xff1a;修复my.cnf 或 my.ini配置文件 四、最后总结 本文将总结如何解决 SQLyog 连接 MySQL8.0 时报错&#xff1a;错误号码2058 一、问…

线程池:神秘的“轻量级线程”

当前我们的多线程部分已经学习了几个代码案例&#xff1a; 1.单例模式 2.阻塞队列 -> 生产者消费者模型 3.定时器 4.线程池 而线程存在的意义就是&#xff0c;使用进程来实现并发编程会“太重了”&#xff0c;创建和销毁进程都会比较耗资源。 但是线程会更加高效。此时&…

K8S名称空间和资源配额

Kubernetes 支持多个虚拟集群&#xff0c;底层依赖于同一个物理集群。 这些虚拟集群被称为名称空间。名称空间namespace是k8s集群级别的资源&#xff0c;可以给不同的用户、租户、环境或项目创建对应的名称空间&#xff0c;例如&#xff0c;可以为test、dev、prod环境分别创建各…

Stable Diffusion 参数介绍及用法

大模型 CheckPoint 介绍 作用&#xff1a;定调了作图风格&#xff0c;可以理解为指挥者 安装路径&#xff1a;models/Stable-diffusion 推荐&#xff1a; AnythingV5Ink_v32Ink.safetensors cuteyukimixAdorable_midchapter2.safetensors manmaruMix_v10.safetensors counterf…

Python 图片处理笔记

import numpy as np import cv2 import os import matplotlib.pyplot as plt# 去除黑边框 def remove_the_blackborder(image):image cv2.imread(image) #读取图片img cv2.medianBlur(image, 5) #中值滤波&#xff0c;去除黑色边际中可能含有的噪声干扰#medianBlur( Inp…

买卖股票的最佳时机

一、题目。 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置…