Java二、八、十、十六进制介绍
1.说明
在Java中整数有四种表示方式,
分别为十进制,二进制,八进制,十六进制,
其中十进制就是平常最熟悉,使用最多的进制;
二进制是在计算机中使用最多的进制,
八进制和十六进制都是基于二进制的,
3位二进制数组成1位八进制数,
4位二进制数组成1位十六进制数,
所以二进制,八进制,十六进制互相转换很方便。
2.四种方式表示整数
- 十进制(Decimal):0-9 , 满10进1。
- 二进制(Binary): 0、1 ,满2进1,以0b或0B开头。
- 八进制(Octal): 0-7 , 满8进1, 以数字0开头表示。
- 十六进制(Hex): 0-9及A-F,满16进1,以0x或0X开头表示。注意A-F不区分大小写。
| 进制(数值) | 10 | 2 | 8 | 16 |
|---|---|---|---|---|
| 进制(英文) | Decimal | Binary | Octal | Hex |
| 进制(中文) | 十进制 | 二进制 | 八进制 | 十六进制 |
| 字符集 | 0-9 | 0,1 | 0-7 | 0-9,A-F(a-f) |
| 进位方法 | 满10进1 | 满2进1 | 满8进1 | 满16进1 |
| 前导字符 | 无 | 0b或0B | 数字0 | 0x或0X |
3.常见整数的表示方法
针对不同的进制,
下表列出了常见整数的表示方法。
| 十进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 17 | 10001 | 21 | 11 |
4.Integer类
上面给出的表格可以在开发中使用到,
在使用Java提供的相关类库时,
可以查看对应的表格,
下面基于Integer类的提供的API,
演示这几个API的使用。
public static void testSimpleMethod() {
Integer int1 = 2021;
// 默认打印的是十进制
System.out.println("1.默认十进制:");
System.out.println("十进制int1=" + int1);
// 使用十进制打印,toString
System.out.println("2.指定十进制方法:");
System.out.println("十进制int1=" + Integer.toString(int1));
// 使用十进制打印,指定参数
System.out.println("3.指定十进制参数:");
System.out.println("十进制int1=" + Integer.toString(int1, 10));
// 使用二进制打印
System.out.println("4.指定二进制方法:");
System.out.println("二进制int1=" + Integer.toBinaryString(int1));
// 使用八进制打印
System.out.println("5.指定八进制方法:");
System.out.println("八进制int1=" + Integer.toOctalString(int1));
// 使用十六进制打印
System.out.println("5.指定十六进制方法:");
System.out.println("十六进制int1=" + Integer.toHexString(int1));
}
程序输出如下:
1.默认十进制:
十进制int1=2021
2.指定十进制方法:
十进制int1=2021
3.指定十进制参数:
十进制int1=2021
4.指定二进制方法:
二进制int1=11111100101
5.指定八进制方法:
八进制int1=3745
5.指定十六进制方法:
十六进制int1=7e5
虽然这里的输出没有加上前导字符,
注意在Java使用不同进制的数值时,
需要加上相应的前导字符,
否则Java会当成十进制数。
5.其他
十进制的最大数是9,满10进1。
二进制的最大数是1,满2进1。
八进制的最大数是7,满8进1。
十六进制的最大数是15(F),满16进1,
由于10-15会和阿拉伯数字混淆,
所以使用A-F替代。
对于二进制,没有必要想太复杂,
把它当成一种特殊的十进制即可,
同样可以进行加减乘除,
最左边的数值是最高位,
最右边的数值是最低位,
数值可以有正负(+-)。
Java左移操作,相当于进行乘法,
左移一位,乘一次2。
Java右移操作,相当于进行除法,
右移一位,除一次2。
Java二、八、十、十六进制介绍的更多相关文章
- “全栈2019”Java第八十二章:嵌套接口能否访问外部类中的成员?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十九章:接口中能定义内部类吗?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十八章:接口中嵌套接口的应用场景
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十五章:实现接口中的嵌套接口
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十四章:接口中嵌套接口详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十七章:类中嵌套接口的应用场景(拔高题)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十三章:内部类与接口详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十一章:外部类能否访问嵌套接口里的成员?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 实验03——java十进制转二、八、十六进制;打印'中'的十六进制;进制转换的api
package cn.tedu.demo; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @version 创建时间:2020年7月16日 上午10:22: ...
- Java设计模式(十二) 策略模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/design_pattern/strategy/ 策略模式介绍 策略模式定义 策略模式(Strategy Pattern) ...
随机推荐
- LocalDate计算两个日期相差天数
import org.apache.commons.lang.StringUtils; import java.time.LocalDate; import java.time.ZoneId; imp ...
- Java对象的创建过程:类的初始化与实例化
一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...
- 【Linux】【Shell】【Basic】字符串操作
1. 字符串切片: ${var:offset:number} 取字符串的子串: 取字符趾的最右侧的几个字符:${ ...
- 注册页面的servlet
package cn.itcast.travel.web.servlet;import cn.itcast.travel.domain.ResultInfo;import cn.itcast.trav ...
- DT10功能介绍--DT10多波示波器
功能介绍 有些嵌入式软件方面的问题,利用传统的调试器可能无法解决,而通过逻辑分析器则能有效地解决.请仔细阅读本文, 看我们如何一步一步地讲解在这种情况下所需的配置. 但是,从传统意义上讲,逻辑分析器是 ...
- 08 - Vue3 UI Framework - Input 组件
接下来再做一个常用的组件 - input 组件 返回阅读列表点击 这里 需求分析 开始之前我们先做一个简单的需求分析 input 组件有两种类型,即 input 和 textarea 类型 当类型为 ...
- 别被调查汇总郁闷到——有Excel呢!
年初的某天,我在家待得好好的,好吧,其实也不是待得好好的,这事大家都知道,新冠病毒嘛,都锁家里了,还好本妖向来宅--呃--跑题了--肥来! 其实我能在家好好地待着,有水有电有Wi-Fi,那是有多少人冒 ...
- 例外日期(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 日历无论怎么样自定义,只要仍是存在固化规律的,就铁定会坏事,因为人类的历史就是在大规律中掺杂着无数无规律,再由无数无规律凝 ...
- 【手把手教程】uniapp + vue 从0搭建仿微信App聊天应用:腾讯云TXIM即时通讯的最佳实践
基于uniapp + vue 实现仿微信App聊天应用实践,实现以下功能 1: 用户登陆 2: 聊天会话管理 3: 文本/图片/视频/定位消息收发 4: 贴图表情消息收发 5: 一对一语音视频在线通话 ...
- std::bind与std::ref, why and how
首先解释下为什么有时候需要bind. 我们可以用bind从函数T add(T a, T b)造出个inc()来,即把b写死为1.这个例子本身比较傻,但有不傻的应用. template<typen ...