java的数字二进制输出

int x=15;
System.out.printf("%010x\n",x);//按10位八进制输出,向右靠齐,左边用0补齐
System.out.printf("%010o\n",x);//按10位十六进制输出,向右靠齐,左边用0补齐
将得到以下输出
000000000f
0000000017
请问还是用这个printf方法,怎样按照二进制输出

要是我肯定先尝试一下,二进制以B开头,那就b代表下看咯,不行再去查。
事实也证明是不行的,查了一下,还真没有二进制的输出形式。
Integer 类倒是有相应的方法:
static StringtoBinaryString(int i)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
System.out.print(Integer.toBinaryString(x));
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-29
定义十进制的数直接写,定义8进制的数以0开头,定义二进制的数以0b开头,定义十六进制的数以0x开头
需要将十进制的数以二进制的数表示出来可以参照下例:
int a = 10;
System.out.println(Integer.toBinaryString(a));
转换成八进制把Binary换成Octal
转换成十六进制把Binary换成Hex
解释:Binary是二进制的意思,Octal是八进制的意思,Hex是十六进制的意思。本回答被网友采纳
第2个回答  2015-03-30
自己查找JDK API,根据System.out.printf()找到PrintStream类的printf(String format, Object... args)方法,里面有很多相关内容,这里就不一一赘述。通过实验,上述问题换成System.out.printf("%010b\n", x)语句输出的结果是true。经查阅资料,printf方法没有直接进行二进制转换输出的功能,C语言中也没有。
所以,如果必须的话,可以尝试System.out.println(Integer.toBinaryString(x))方法输出x的二进制表示。
第3个回答  2013-12-18
首先,java里int是有32位2进制数组成的
我们一般赋值 int i = 1; 这个是赋值10进制的数
赋值 2进制要 int i = 01;(前面加个0,就表示是2进制数)
赋值16进制(常用) int i = 0x00000001; (0x表示为16进制数)
3种的值都是1.
要用2进制输出就是Integer.toBinaryString(i)

拓展:
因为计算机处理位运算速度是非常快的(应该是最快的运算)
所以很多时候,如果有一堆boolean变量需要表示时, 一般只用1个int的数表示,如:
int i = 0x0000000f;//表示后4位为1
int m = (i >> 2) & 1; // 其中m就是表示某一位的值,2表示右边开始数第2位(当然是从第0位开始算的)
这样就能取具体每一位的值
这种方法在很吃代码效率的程序中经常遇到

全手打,望支持
第4个回答  2013-07-07
sun公司很土但还没那么土十进制转成十六进制:
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
相似回答