日期:2014-05-20  浏览次数:20684 次

关于一个整数用二进制,八进制,十六进制输出的问题
小弟正在学习J2SE的编程,遇到该问题,于是写出了这样的代码:
Java code
package ch2;

public class Class2 {
    public static void main(String[] args){
        int a = 100;//假定转换的数字为100
        b(a);
        System.out.print("\n");
        o(a);
    }
    public static void b(int n){
        int temp = n;
        System.out.print("二进制表示结果:");
        while(temp!=0){
            System.out.print(temp%2);
            temp/=2;
        };
        return;
    }
    public static void o(int n){
        int temp = n;
        System.out.print("八进制表示结果:");
        while (temp!=0){
            System.out.print(temp%8);
            temp/=8;
        };
        return;
    }//由于技术不行,结果我十六进制输出实在不知道怎么写出来了,就写了个八进制和二进制
}



但是发现结果不正确:
Java code
二进制表示结果:0010011
八进制表示结果:441


求大神帮忙修改下。

------解决方案--------------------
Integer类里面封装了这个方法

Java code

package jiakai;

public class MyTest {

    
    public static void main(String[] args) {
        int a = 256;
        System.out.println(Integer.toBinaryString(a));
        System.out.println(Integer.toOctalString(a));
        System.out.println(Integer.toHexString(a));
    }

}