黑马程序员技术交流社区

标题: 怎样表示一个二进制数 [打印本页]

作者: 戴振良    时间: 2012-3-25 15:36
标题: 怎样表示一个二进制数
本帖最后由 戴振良 于 2012-3-27 17:33 编辑

我知道十进制是直接写,8进制在前面加0,16进制在前面加0x,如果是2进制的怎么办,
比如我要打印0xf这个16进制数:System.out.println(0xf);//输出为15
如果我要打印1111这个2 进制数,该怎么打印呢?


2012年3月27日 补充:
我是要打印2进制数,不是把10进转换为2进制,比如,我看到一个2进制数:0101 0111,于是我想知道它对应的10进制是多少,于是我可以用什么方法打印这个2进制打印出来,
比如,16进制的F,假设我不知道它是多少,我可以这样打印:System.out.println(0xf),则系统会输出15,那换成我要打印0101 0111这个2进制数呢?该怎么打印?16进制是可以用0x开头表示的,那二进制有没有说用什么开头表示一个数是二进制呢?

作者: 李哲    时间: 2012-3-25 15:46
class Demo
{
        public static void main(String[] args)
        {
                System.out.println(1111);                       
        }
}
作者: 蒙武辉    时间: 2012-3-25 15:49
public class Test {
        public static void main(String a[])
        {
                int b=4;
                System.out.println(Integer.toBinaryString(b));
        }

}
作者: 贠(yun)靖    时间: 2012-3-25 17:04
    int n=15
   int[] arr = new int[8];
  int x=0;
  while(n>0)
    { int a=n%2;
     int n=n/2;
    arr[x]=a;
    x++  }
for (int x = arr.length-1;x>=0;x--)
   System.out.println(arr[x]);
  
作者: 朱俊    时间: 2012-3-25 17:19
本帖最后由 朱俊 于 2012-5-16 15:05 编辑
  1. ~~~~~~~~~~~~~~
复制代码

作者: 王春祥    时间: 2012-3-25 19:11
可以当个字符串打印System.out.pintln("1111");
也可以直接打印数字System.out.println(1111);
而给定一根正数可以用Integer类的toBinaryString(int i)函数
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式
System.out.println(Integer.toBinaryString(i));
作者: 戴振良    时间: 2012-3-27 17:21
贠(yun)靖 发表于 2012-3-25 17:04
int n=15
   int[] arr = new int[8];
  int x=0;

这代码可以加点注释么,好复杂,看不懂呀{:2_30:}
作者: 戴振良    时间: 2012-3-27 17:24
朱俊 发表于 2012-3-25 17:19


麻烦也给点注释,搞不懂是什么功能{:soso__8961432591078930798_3:}
作者: 戴振良    时间: 2012-3-27 17:26
yocean 发表于 2012-3-25 21:13
以前的话必须用楼上诸位的方法,你要用的是Java7,可以直接用0b1101表示,
System.out.println(0b1101 ...

我感觉就唯有您理解了我的意思,谢谢!!
作者: 戴振良    时间: 2012-3-27 17:32
蒙武辉 发表于 2012-3-25 15:49
public class Test {
        public static void main(String a[])
        {

我是要打印2进制数,不是把10进转换为2进制,比如,我看到一个2进制数:0101 0111,于是我想知道它对应的10进制是多少,于是我可以用什么方法打印这个2进制打印出来,
比如,16进制的F,假设我不知道它是多少,我可以这样打印:System.out.println(0xf),则系统会输出15,那换成我要打印0101 0111这个2进制数呢?该怎么打印?16进制是可以用0x开头表示的,那二进制有没有说用什么开头表示一个数是二进制呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2