Integer类有个现成的方法:toBinaryString获取二进制的字符串。至于如何创建十进制16和八进制16到int,有个方法叫Integer.parseInt("16", 8)后一个参数指明多少进制(这里是八进制)。

解决方案 »

  1.   

    多谢楼上的提醒,我已经知道了整数十进制到其他进制类型的转化,方法如下:
    Integer i1 = new Integer(16);
    System.out.println(i1.toBinaryString(20));//10100
    System.out.println(i1.toOctalString(20));//24
    System.out.println(i1.toHexString(20));//14
    这种写法好像不是很简洁噢,还有没有其他写法,请告之同理我用你的方法也试验了把上述值再转化为十进制的效果
    System.out.println(Integer.parseInt("10100", 2));//20
    System.out.println(Integer.parseInt("24", 8));//20
    System.out.println(Integer.parseInt("14", 16));//20
    均得出正确的结果,再次表示感谢除此之外,不知道还有没有其他的办法呢?
      

  2.   

    一:
       int i1 = 16;
       int[] i2 = new int [32];
       for (int i = 0; i <=31; i ++){
            i2[31-i] = i1 & 1;
            i1 >>= 1;
       }
       for (int i = 0; i <=31; i ++)
           System.out.print(i2[i]); 
    二:
    int i = 16;
    for(int j = 31; j >= 0; j--)
          if(((1 << j) &  i) != 0)
            System.out.print("1");
          else
            System.out.print("0");
      

  3.   

    while(i){
              push(s,i%2);
              i=i/2;
             }
    while(!stackempty(s))
    {
          pop(s,e);
          system.outprint(e);
    }