java的16进制和8进制表达式 Ox
(2014-12-03 10:19:30)
标签:
2进制8进制16进制表达式ox |
分类: Java |
由于数据在计算机中的表示,最终以 二进制 的形式存在,所以有时候使用二进制,可以更直观 地解决问题。
但, 二进制数太长了。
比如 int 类型占用 4 个字节, 32
位。
比如 100 , 用 int 类型的二进制数表达将是:
0000
0000
0000 0000
0110
0100
面对这么长的数进行思考或操作,没有人会喜欢。因此,
C,C++, 以及 java 中
没有提供在代码直接写二 进制数的方法。
八进制数的表达方法
如何表达一个八进制数呢?如果这个数是
876, 我们可以断定它不是八进制数, 因为八进制数中不可能出 7
以上的阿拉伯数字。但如果这个数是 123 、是 567 ,或 12345670 ,那么它是八进制数还是 10 进制数,都有 可能。
如: 123 是十进制,但 0123 则表示采用八进制。这就是八进制数的表达方法。
现
在,对于同样一个数,比如是 100 ,我们在代码中可以用平常的 10 进制表达,例如在变量初始化时:
//0144 是八进制的 100 ;一个 10 进制数如何转成 8 进制 ,我们后面会学到。
千万记住,用八进制表达时,你不能少了最前的那个 0 。否则计算机会通通当成 10
进制。
不过,有一个 地方使用八进制数时,却不能使用加 0 ,那就是我们前面学的用于表达字符的 “ 转义符 ” 表达法。
如果不使用特殊的书写形式, 16 进制数也会和 10 进制相混。随便一个数: 9876 ,就看不出它是 16 进制 或 10
进制。
16 进制数必须以
0x 开头。 比如
0x1 表示一个 16 进制数。
而 1 则表示一个十进制。另外如: 0xff,0xFF,0X102A, 等等。其中的 x 也不区分大小写。 ( 注意: 0x 中的 0 是数字0,而不是字母O)
以下是一些用法示例:
最后一点很重要,10进制数有正负之分,比如12表示正12,而-12表示负12;
但8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,编译器并不把它当成一个负数。
前一篇:HashMap存储结构浅析