八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数?单从数字的角度来讲都有可能!

八进制

所以在Java中规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数的表达方法。
123如果是十进制的话是123,八进制的话,则是83,如在变量赋值时可以以十进制的方式赋值int a = 83; 也可以以八进制的方式赋值,int a= 0123;得到的是同样的结果。

十六进制

如果不使用特殊的书写形式,16进制数也会和10进制相混。随便一个数:9876,就看不出它是16进制或10进制。
16进制数必须以 0x开头。比如 0x1表示一个16进制数。而1则表示一个十进制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不区分大小写。(注意:0x中的0是数字0,而不是字母O)
如int b = 1;int b=0x1;是同样的含义,int b = 17;与int b = 0x11;表达的是同样的值。

不区分正负

10进制数有正负之分,比如12表示正12,而-12表示负 12。但8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,编译器并不把它当成一个负数。
package com.lingyejun.blog;

public class HexNum {

    public static void main(String[] args) {
int a10 = 99;
int a2 = 0b101;
int a8 = 0143;
int a16 = 0x63;
System.out.println(a10);
System.out.println(a2);
System.out.println(a8);
System.out.println(a16);
int ma10 = -99;
int ma2 = -0b101;
int ma8 = -0143;
int ma16 = -0x63;
System.out.println(ma10);
System.out.println(ma2);
System.out.println(ma8);
System.out.println(ma16);
char c = '李';
System.out.println("字母A在char中的编号" + Integer.toString('A') + " " + Integer.toBinaryString('A'));
System.out.println("字母a在char中的编号" + Integer.toString('a'));
System.out.println("char 字符 李 用二进制表示为 :" + Integer.toBinaryString(c));
System.out.println("char 字符 李 用八进制表示为 :" + Integer.toOctalString(c));
System.out.println("char 字符 李 用十六进制表示为 :" + Integer.toHexString(c));
} }

执行结果:

在Java中关于二进制、八进制、十六进制的辨析的更多相关文章

  1. Java中的二进制及基本的位运算

    Java中的二进制及基本的位运算 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二 ...

  2. java中的二进制

    (1)按位与运算 & 1 & 1 = 1, 0 & 1 = 0 51 & 5  即 0011  0011 & 0000  0101 =0000 0001 = 1 ...

  3. 关于JAVA中抽象类和接口的区别辨析

    今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...

  4. java中 二进制 八进制 十六进制 十进制 相互转换 最简方法

    package com.swift; import java.util.Scanner; public class Hex2Decimal { public static void main(Stri ...

  5. java中表示二进制、八进制、十进制、十六进制

    1.进制 进制是一种记数方式 ,可以用有限的数字符号代表所有的数值.由特定的数值组成. 2.进制的表现形式 二进制: 由0和1两个数字组成. 八进制: 由0-7数字组成,为了区分与其他进制的数字区别, ...

  6. java中表示二进制、八进制、十进制、十六进制,double、float、整型

    java里不能这样表示二进制,只能是   8,10,16进制  8:         前置   0  10:      不需前置 16:      前置   0x   或者   0X double:2 ...

  7. Java十进制转成二进制 八进制 十六进制

    int a = 357;//十进制转成二进制System.out.println(Integer.toBinaryString(a)); package com.swift; import java. ...

  8. python的进制转换二进制,八进制,十六进制及其原理

    #!usr/bin/env python# coding:utf-8def binary(): '''二进制的方法与算法'''    Number = 10    Number1 = 20    Nu ...

  9. Java中处理二进制移位

    我相信,这篇文章读起来会相当有趣. 文章中编程语言是Java,用Java的原因:第一,Java不做数据溢出校验,这样我们可以忽略溢出异常:第二,Java普及率比较高,就像是python或shell,几 ...

随机推荐

  1. 百度地图出现UnsatisfiedLinkError: Native method not found: com.baidu...

    这是由于导入os文件方式引起 解决办法有两种: 第一种: 弄一个文件夹so/armeabi,把所有的so全部放进去.结构就是so/armeabi/a.so,b.so,c.so 然后压缩这个文件夹成为s ...

  2. 报错程序包org.springframework.test.context不存在

    在pom.xml文件中找到 加入了依赖,但是maven update 或者Reimport后 启动还是报错 最后使出绝招: 在maven仓库的位置 找到对应的文件夹 更奇怪了 发现明明有jar包啊! ...

  3. C/C++中的变量和静态变量

    static有两种用法:一是面向过程程序设计语言中的static,用于普通变量和函数,不涉及类:二是面向对象程序设计中的static,主要涉及static在类中的作用. 面向过程设计中的static ...

  4. Android 命令行打包和签名

    使用命令行方式进行签名需要JDK中的两个命令行工具:keytool.exe和jarsigner.exe.可按如下两步对apk文件进行签名: 1. # keytool -genkey -v -keyst ...

  5. java基础---->验证码的使用(一)

    验证码是一种区分用户是计算机和人的公共全自动程序.可以防止:恶意破解密码.刷票.论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通 ...

  6. MQTT-SN协议乱翻之实现要点

    前言 本篇是MQTT-SN 1.2协议最后一篇翻译了,主要涉及实现要点,很简短. 需要支持QoS 值为 -1 QoS虽默认设置有0,1,2三个值,但还有一种情况其值为-1.来自客户端的PUBLISH消 ...

  7. 【CSS系列】对表单和数据表格应用样式

    表格特有的元素: 1.summary和caption caption用作与表格的标题.summary应用于表格标签,用来描述表格的内容,于image标签的alt文本相似. 2.thead tbody ...

  8. [SQL] MSSQL update 语句中的关联

    将tableA 表中的所有title 用tableB中的titlename 更新掉,如果tableB中存在对应的关系 update tableA as a set a.title = (select ...

  9. 微信小程序 --- 动态获取input的value

    这里对 input 使用的是 bindinput 方法: <input type="text" bindinput="input"> <but ...

  10. OneThink后台模型怎么玩?

    OneThink 后台模型有个模型类型: 模型下——>设计——>表单显示分组(怎么玩?) 这个将会显示在:内——>发布文章内容的时候: 单选按钮: 内容模块显示: 枚举类型可以这样玩 ...