java里面二进制怎么表示

hzhou 2006-01-11 09:11:53
我初学java,只查到十六进制怎么表示,但是二进制不知道怎么表示。
...全文
39707 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hamlet3145 2006-01-11
  • 打赏
  • 举报
回复
java语言里没有2进制直接表示法,原因是太长了,需要的化可以使用16进制

是静安寺不是道明寺,是源程序不是言承旭;是在静安寺写源程序,不是在流星花园看F4。
hamlet3145 2006-01-11
  • 打赏
  • 举报
回复
由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。

但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:

0000 0000 0000 0000 0110 0100

面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++,以及java中 没有提供在代码直接写二进制数的方法。

八进制数的表达方法

如何表达一个八进制数呢?如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。

所以规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数的表达方法。


现在,对于同样一个数,比如是100,我们在代码中可以用平常的10进制表达,例如在变量初始化时:

int a = 100;

我们也可以这样写:

int a = 0144; //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)

以下是一些用法示例:

 

int a = 0x100F;

int b = 0x70 + a;

 

至此,我们学完了所有进制:10进制,8进制,16进制数的表达方式。最后一点很重要,10进制数有正负之分,比如12表示正12,而-12表示负12,;但8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,编译器并不把它当成一个负数。

是静安寺不是道明寺,是源程序不是言承旭;是在静安寺写源程序,不是在流星花园看F4。
CalvinKyle 2006-01-11
  • 打赏
  • 举报
回复
common codec里面有个相关的Binary类





hzhou 2006-01-11
  • 打赏
  • 举报
回复
我的意思是在java程序中怎么表示一个二进制的integer
zngj 2006-01-11
  • 打赏
  • 举报
回复
二进制 一般都是用 byte[]数组存储
怎么表示,用1和0表示-_-.....10110101010101101001
柯本 2006-01-11
  • 打赏
  • 举报
回复
不仅是java,c/c++,delphi(pascal)都没有直接的二进制常数表示法(VB不熟,不过好像也没有)
zngj 2006-01-11
  • 打赏
  • 举报
回复
java里不能这样表示,只能是 8,10,16进制
8: 前置 0
10: 不需前置
16: 前置 0x 或者 0X
hzhou 2006-01-11
  • 打赏
  • 举报
回复
比如我要表示一个
int i=6;
但是我希望在写程序的时候能最好写成 int i=110(binary); 这样子的。
zngj 2006-01-11
  • 打赏
  • 举报
回复
没个int实际上都是2进制的-_# 还是不能理解你的问题,哈哈哈
如果是指输出的话
16进制: Integer.toHexString(32)
2进制 : Integer.toBinaryString(32)
再有个大整数BigInteger....在java.Math里...

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧