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) ...
随机推荐
- DP-Burst Balloons
leetcode312: https://leetcode.com/problems/burst-balloons/#/description Given n balloons, indexed fr ...
- oracle 锁查询
--v$lock中 id1 在锁模式是 TX 时保存的是 实物id 的前2段SELECT * FROM (SELECT s.SID, TRUNC(id1 / power(2, 16)) rbs, bi ...
- ajaxSubmit返回JSON格式
开发时遇到根据不同情况返回错误提示信息的需求,用到了ajax中返回json格式数据的. 前台请求代码: <script type="text/javascript"> ...
- vueAPI (data,props,methods,watch,computed,template,render)
data Vue 实例的数据对象.Vue 将会递归将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化.实例创建之后,可以通过vm.$data来访问原始数据 ...
- [BUUCTF]PWN——hitcontraining_magicheap
hitcontraining_magicheap 附件 步骤: 例行检查,64位程序,开启了nx和canary 本地试运行一下,经典的堆的菜单 64位ida载入,检索程序里的字符串的时候发现了后门 m ...
- Tornadofx学习笔记(4)——IconTextFx开源库,整合5000+个字体图标
JavaFx中其实也可以直接使用字体图标iconfont的,只需要加载ttf字体文件,之后设置unicode即可,具体可以看我给出的代码 既然JavaFx可以,那么以JavaFx为基础的Tornado ...
- CF1494A ABC String 题解
Content 给定 \(T\) 个仅包含大写字母 A,B,C 的字符串 \(s\).问你是否能够通过将每个 A,B,C 换成 (,) 中的一个(同一个字母必须要换成同一个字符),使得最后得到的括号序 ...
- Python3 面向对象之-----元类
元类 1. 类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段.在Python中这一点仍然成立: >>> class ObjectCreator(object ...
- Shell脚本--数值比较组合判断
用于数值比较的无非大于.小于.等于.大于等于.小于等于这几个. 比较格式: [ 数值1 比较符 数值2 ] 注意左边的括号与数值1之间有一个空格,同样,数值2和右边的括号之间也有空格. 数值比较运 ...
- 为什么需要两次eval才转化为需要的JSON数据,好奇怪
为什么需要两次eval才转化为需要的JSON数据,好奇怪