以下是本人初学Java时总结的整数转二进制的几种方法:

首先说到JAVA语言就很容易想到C语言,于是参考C 语言写法 while(n>0){printf("%d",n%2);n/=2;} 本身就是逆序打印二进制就有了如下第一种代码:

public class two2 {
    public static void main(String[] args) {
        int n = 7;
        if (n==0) {
            System.out.print(0);
        }
        while (n>0){
            System.out.print(n%2);
            n/=2;
        }
        System.out.print("");
        
    }
}

结果不出意外的话还是出意外了,实际是0111的结果变成了111。经过分析很容易发现Java 原样照搬输出顺序天然颠倒,不能直接打印,必须先缓存再翻转。于是就有了第二种代码:

public class two2 {
    public static void main(String[] args) {
        int n = 10;
        int res = 0;
        int mod = 0;
        while (n > 0) {
            mod = n % 2;
            res = res * 10 + mod;
            n /= 2;

        }
        System.out.print(res);
        if (n==0) {
            System.out.print(0);
        }
    }
}

通过取出余数->反向拼装->添加尾数0,终于得到正确答案1110。

大家作为初学者,看到这里应该觉得可以接受了。毕竟第二种方法已经非常通俗易懂,但是这里还是要引出第三种方法来扩展大家的视野。如果我们学会了字符串,就有如下第三种代码

public class two3 {
    public static void main(String[] args) {
        int n = 10;
        StringBuilder s = new StringBuilder();
        while (n > 0) {
            s.append(n % 2);
            n /= 2;
        }
        if (n==0) {
            System.out.print(0);
        }
        System.out.println(s.reverse());
    }
}

当然,以上内容都是初学者的一些个人见解,有任何问题也欢迎大家写下自己的意见,本人看到都会回复,互相学习,与诸君共勉。

更多推荐