Java 整数转二进制的几种方法
·
以下是本人初学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());
}
}
当然,以上内容都是初学者的一些个人见解,有任何问题也欢迎大家写下自己的意见,本人看到都会回复,互相学习,与诸君共勉。
更多推荐

所有评论(0)