它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制

12年前
package com.test.code;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Erjinzhi {

/**
* 它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。
* @param args
*/
public static void main(String[] args) {
int shang = 0, yu;
boolean flag = false;
System.out.println("请输入一个数字(最大值为<" + Integer.MAX_VALUE + ")");
InputStream inputStream = System.in;
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader reader = new BufferedReader(inputStreamReader);
try {
String str = reader.readLine();
char[] ch = new char[str.length()];
str.getChars(0, ch.length, ch, 0);
for (int i = 0; i < str.length(); i++) {
if (!Character.isDigit(ch[i])) {
System.out.println("有非数字字符");
System.exit(0);
}
}
try {
shang = Integer.parseInt(str);
flag = true;
} catch (Exception ex) {
ex.printStackTrace();
}
//不断用二除,直到除不开,再把余数倒置
str = "";
if (flag) {
while (shang != 0) {
yu = shang % 2;
shang = shang / 2;
str = yu + str;
}
}
System.out.println(str);

} catch (IOException e) {
e.printStackTrace();
}
}

}