Java——常见进制

在计算机领域有四种比较常见的进制,分别是二进制、八进制、十进制和十六进制。

一、二进制(Binary)

二进制(Binary)是一种基数为2的数值系统,仅使用两个符号:0和1。所以它的进位规则就是逢二进一。

就如使用二进制从一数到五就是:

1,10,11,100,101

从 Java 7 开始,Java 支持使用二进制字面量来表示整数。这使得代码在涉及低级位操作和硬件编程时更具可读性。二进制字面量以 0b0B 开头,后跟实际的二进制数字(0和1)。下面是一些使用二进制字面量的示例:

public class Test {public static void main(String[] args) {// 使用二进制字面量初始化整数int num1 = 0b101; // 二进制中的 101 是十进制的 5int num2 = 0b1101; // 二进制中的 1101 是十进制的 13int num3 = 0B100000; // 二进制中的 100000 是十进制的 32// 打印结果System.out.println("num1 = " + num1); // 输出: num1 = 5System.out.println("num2 = " + num2); // 输出: num2 = 13System.out.println("num3 = " + num3); // 输出: num3 = 32}
}

运行结果:

二、八进制(Octal)

八进制数值系统的基数是8,因此它使用的字符为0到7。它的进位规则就是逢八进一。

对于八进制从一数到十就是:

1,2,3,4,5,6,7,10,11,12

在Java中,八进制常量以 0 作为前缀,后跟实际的八进制数字。下面是一些使用八进制字面量的示例:

public class Test {public static void main(String[] args) {// 使用八进制字面量初始化整数int num1 = 0123; // 八进制中的 123 是十进制的 83int num2 = 077;  // 八进制中的 77 是十进制的 63int num3 = 05;   // 八进制中的 5 是十进制的 5// 打印结果System.out.println("num1 = " + num1); // 输出: num1 = 83System.out.println("num2 = " + num2); // 输出: num2 = 63System.out.println("num3 = " + num3); // 输出: num3 = 5}
}

运行结果:

三、十进制(Decimal)

十进制使我们在生活中常用的进制,它使用 0 到 9 这十个基数标识。进位规则就是逢十进一。对于 System.out.println(); 打印出来的数值一般就是十进制,方便人类查看。

在 Java 中,我们经常使用十进制常量,十进制常量没有特殊前缀。下面是一些使用十进制进制字面量的示例:

public class Test {public static void main(String[] args) {// 使用八进制字面量初始化整数int num1 = 223; // 十进制的 223int num2 = 93;  // 十进制的 93int num3 = 56;   // 十进制的 56// 打印结果System.out.println("num1 = " + num1); // 输出: num1 = 223System.out.println("num2 = " + num2); // 输出: num2 = 93System.out.println("num3 = " + num3); // 输出: num3 = 56}
}

运行结果:

四、十六进制(Hexadecimal)

十六进制使用16个符号来表示数值,即0-9和A-F,其中A代表10,B代表11,C代表12,D代表13,E代表14,F代表15。

在Java中,十六进制常量以 0x0X 作为前缀,后跟具体的十六进制数值。下面是一些使用十六进制字面量的示例:

public class Test {public static void main(String[] args) {// 使用十六进制字面量初始化整数int num1 = 0x1A3F; // 十六进制中的 1A3F 是十进制的 6719int num2 = 0xFF;   // 十六进制中的 FF 是十进制的 255int num3 = 0x7E;   // 十六进制中的 7E 是十进制的 126// 打印结果System.out.println("num1 = " + num1); // 输出: num1 = 6719System.out.println("num2 = " + num2); // 输出: num2 = 255System.out.println("num3 = " + num3); // 输出: num3 = 126}
}

运行结果:

五、常见进制间相互转化

1、二进制转十进制

将二进制数转换为十进制数的方法是将每一位上的数乘以对应的2的幂,然后求和。

转换步骤:

  1. 从右到左,给二进制数的每一位赋予指数值,起始值为0。
  2. 将每一位上的数字乘以2的幂次。
  3. 把所有的乘积相加,得到十进制结果。

例如:

也就是说先将每一位的值乘上 2 的每一位的位数减一次方,然后将结果相加起来,就是最终转换的十进制结果。

2、八进制转十进制

将八进制数转换为十进制数的方法是将每一位上的数乘以对应的8的幂,然后求和。

转换步骤:

  1. 从右到左,给八进制数的每一位赋予指数值,起始值为0。
  2. 将每一位上的数字乘以8的幂次。
  3. 把所有的乘积相加,得到十进制结果。

示例:

也就是说先将每一位的值乘上 8 的每一位的位数减一次方,然后将结果相加起来,就是最终转换的十进制结果。

3、十六进制转十进制

将十六进制数转换为十进制数的方法是将每一位上的数乘以对应的16的幂,然后求和。

转换步骤:

  1. 从右到左,给十六进制数的每一位赋予指数值,起始值为0。
  2. 将每一位上的数字乘以16的幂次。
  3. 把所有的乘积相加,得到十进制结果。

示例:

也就是说先将每一位的值乘上 16 的每一位的位数减一次方,然后将结果相加起来,就是最终转换的十进制结果。

4、十进制转二进制

将十进制数转换为二进制数的方法是通过不断除以2,并记录每次除法的余数,直到商为0。然后将余数逆序排列。

转换步骤:

  1. 将十进制数除以2,记录余数。
  2. 用商继续除以2,继续记录余数。
  3. 重复上述步骤,直到商为0。
  4. 将所有记录的余数逆序排列,即得到二进制数。

示例:

5、十进制转八进制

将十进制数转换为八进制数的方法是通过不断除以8,并记录每次除法的余数,直到商为0。然后将余数逆序排列。

转换步骤:

  1. 将十进制数除以8,记录余数。
  2. 用商继续除以8,继续记录余数。
  3. 重复上述步骤,直到商为0。
  4. 将所有记录的余数逆序排列,即得到八进制数。

示例:

6、十进制转十六进制

将十进制数转换为十六进制数的方法是通过不断除以16,并记录每次除法的余数,直到商为0。然后将余数逆序排列。如果余数是10到15,分别用A到F表示。

转换步骤:

  1. 将十进制数除以16,记录余数。
  2. 用商继续除以16,继续记录余数。
  3. 重复上述步骤,直到商为0。
  4. 将所有记录的余数逆序排列,即得到十六进制数。

示例:

十六进制和八进制是为了简化表示和使二进制更易读而引入的。因为二进制在表示较大的数时,通常位数较多,八进制和十六进制可以简化二进制的位数个数,是数据更易读。

7、二进制转八进制

将二进制数转换为八进制数的方法是将二进制数每三位一组(从右到左),然后将每组转换为对应的八进制数。为什么是三位呢,因为三位二进制数刚好可以表示 0 到 7 这八个数,刚好是八进制的八个基数。

转换步骤:

  1. 从右向左,将二进制数每三位一组,不足三位的前面补0。
  2. 将每组转换为对应的八进制数。
  3. 组合所有八进制的数,得到最终结果。

示例1:

示例2:

8、二进制转十六进制

将二进制数转换为十六进制数的方法是将二进制数每四位一组(从右到左),然后将每组转换为对应的十六进制数。为什么是四位呢,因为四位二进制数刚好可以表示 0 到 15 这16个数,刚好是十六进制的十六个基数。

转换步骤:

  1. 从右向左,将二进制数每四位一组,不足四位的前面补0。
  2. 将每组转换为对应的十六进制数。
  3. 组合所有十六进制的数,得到最终结果。

示例1:

示例2:

9、八进制转二进制

将八进制数转换为二进制数的方法是通过将八进制数的每一位数字转换为对应的三位二进制数,然后将这些二进制数拼接起来。

转换步骤:

  1. 将八进制数的每一位数字转换为对应的三位二进制数。
  2. 将所有的三位二进制数拼接起来,即得到二进制数。

示例:

10、十六进制转二进制

将十六进制数转换为二进制数的方法是通过将十六进制数的每一位数字转换为对应的四位二进制数,然后将这些二进制数拼接起来。

转换步骤:

  1. 将十六进制数的每一位数字转换为对应的四位二进制数。
  2. 将所有的四位二进制数拼接起来,即得到二进制数。

示例:

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

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

相关文章

Navicat连接Oracle

目标: 1.Navicat连接Oracle数据库,报错 无监听程序。 一、下载安装Navicat15 https://zhuanlan.zhihu.com/p/675991635 下载安装资源 链接:百度网盘 请输入提取码 提取码:1u1q 二、测试SQL PLUS连接数据库 在全部程序--》Ora…

使用最小花费爬楼梯 | 动态规划

1.使用最小花费爬楼梯 题目连接:746. 使用最小花费爬楼梯 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开…

Spring系列-SpringMvc父子容器启动原理解析

1、Spring整合SpringMVC 特性: 说到Spring整合SpringMVC唯一的体现就是父子容器: 通常我们会设置父容器(Spring)管理Service、Dao层的Bean, 子容器(SpringMVC)管理Controller的Bean .子容器可以访问父容器的Bean, 父容器无法访…

【惯性传感器imu】—— WHEELTEC的惯导模块的imu的驱动安装配置和运行

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、IMU驱动安装1. 安装依赖2. 源码的下载3. 编译源码(1) 配置固定串口设备(2) 修改luanch文件(3) 编译 二、启动IMU1. 运行imu2. 查看imu数据 总结 前言 WHEE…

【C++进阶】深入STL之string:模拟实现走进C++字符串的世界

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:C模板入门 🌹🌹期待您的关注 🌹🌹 ❀STL之string 📒1. string…

图解 Python 编程(10) | 错误与异常处理

🌞欢迎来到Python的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 📆首发时间:🌹2024年6月2日&…

uni-app全局弹窗的实现方案

背景 为了解决uni-app 任意位置出现弹窗 解决方案 一、最初方案 受限于uni-app 调用组件需要每个页面都引入注册才可以使用,此方案繁琐,每个页面都要写侵入性比较强 二、改进方案 app端:新建一个页面进行跳转,可以实现伪弹窗…

认识微服务,认识Spring Cloud

1. 介绍 本博客探讨的内容如下所示 什么是微服务?什么是springcloud?微服务和springcloud有什么关系? 首先,没有在接触springcloud之前,我写的项目都是单体结构, 但随着网站的用户量越来越大,…

list的简单模拟实现

文章目录 目录 文章目录 前言 一、使用list时的注意事项 1.list不支持std库中的sort排序 2.去重操作 3.splice拼接 二、list的接口实现 1.源码中的节点 2.源码中的构造函数 3.哨兵位头节点 4.尾插和头插 5.迭代器* 5.1 迭代器中的operator和-- 5.2其他迭代器中的接口 5.3迭代器…

【TCP协议中104解析】wireshark抓取流量包工具,群殴协议解析基础

Tcp ,104 ,wireshark工具进行解析 IEC104 是用于监控和诊断工业控制网络的一种标准,而 Wireshark则是一款常用的网络协议分析工具,可以用干解析TEC104 报文。本文将介绍如何使用 Wireshark解析 IEC104报文,以及解析过 程中的注意事项。 一、安…

C语言-01_HelloWord

文章目录 1.C程序运行机制2.HelloWorld的剖析① main()② 函数体③ printf()④ 标准库、头文件 3.输出3.1 printf()标准格式3.2 占位符3.3 输出格式 1.C程序运行机制 过程1:编辑 编写C语言源程序代码,并已文件的形式存储到磁盘中。源程序文件以“.c”作…

dubbo复习:(19)dubbo 和spring整合(老古董)

一、服务端依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM…

【Linux】Linux工具——gcc/g++

1.使用vim更改信用名单——sudo 我们这里来补充sudo的相关知识——添加信任白名单用户 使用sudo就必须将使用sudo的那个账号添加到信用名单里&#xff0c;而且啊&#xff0c;只有超级管理员才可以添加 信用名单在/etc/sudoers里 我们发现它的权限只是可读啊&#xff0c;所以…

cocos入门5:编辑器界面介绍

Cocos Creator是一款功能强大的跨平台游戏开发工具&#xff0c;其编辑器界面设计直观易用&#xff0c;提供了从资源管理、场景编辑到脚本编写等一站式解决方案。下面是对Cocos Creator编辑器界面的详细介绍&#xff1a; 一、界面布局 Cocos Creator编辑器界面通常包含以下几个…

渲染100为什么是高性价比网渲平台?渲染100邀请码1a12

市面上主流的网渲平台有很多&#xff0c;如渲染100、瑞云、炫云、渲云等&#xff0c;这些平台各有特色和优势&#xff0c;也都声称自己性价比高&#xff0c;以渲染100为例&#xff0c;我们来介绍下它的优势有哪些。 1、渲染100对新用户很友好&#xff0c;注册填邀请码1a12有3…

IDeal下的SpringBoot项目部署

一、首先找到自己的sql文件&#xff0c;没有就从数据库挪进来 二、在Maven下打包一下&#xff08;点击package&#xff09;&#xff0c;看到BUILD SUCCESS就是打包好了 三、将上面两个文件分别挪到 linux 中对应的文件&#xff0c;没有就创建一个&#xff08;我的是spring_blog…

常见算法(基本查找、二分查找、分块查找冒泡、选择、插入、快速排序和递归算法)

一、常见算法-01-基本、二分、插值和斐波那契查找 1、基本查找/顺序查找 需求1&#xff1a;定义一个方法利用基本查找&#xff0c;查询某个元素是否存在 数据如下&#xff1a;{131&#xff0c;127&#xff0c;147&#xff0c;81&#xff0c;103&#xff0c;23&#xff0c;7&am…

WordPress子比主题美化-首页动态的图片展示

WordPress子比主题首页动态的图片展示 WordPress子比主题首页添加动态的图片展示&#xff0c;其他程序也可以用&#xff0c;复制代码到相应位置即可&#xff0c;也可作为指定分类&#xff0c;重点内容等&#xff0c;可以适合各个场景&#xff0c;需要的自取。 图片展示: 教程…

Spring源码之BeanDefinition的加载

Spring源码之BeanFactory和BeanDefinition BeanFactory和BeanDefinitionBeanFactoryBeanDefinition源码分析创建AnnotationConfigApplicationContext对象注册配置类refresh方法 BeanFactory和BeanDefinition BeanFactory BeanFactory是Spring提供给外部访问容器的根接口&…

MVC和MVVM

MVC Model层&#xff1a;用于处理应用程序数据逻辑的部分&#xff0c;通常负责在数据库中存取数据 View&#xff08;视图&#xff09;处理数据显示的部分。通常视图是依据模型数据创建的 Controller&#xff08;控制器&#xff09;是处理用户交互的部分。通常控制器负责从视…