实现十进制正数转化为二进制数。
- 转展相除法
- 用if循环
实现十进制正数转化为二进制数。 if else分支语句
- @author xiangtao.p
*
- @Date 2020年10月30日
*/
public class DecimalismToBinary {
// String result;
public static void main(String[] args) {
int num = -115;// 输入的数据
// 调用DecimalismToBinary的dtb方法
dtb(num);
}
// 1.判断正负数
public static void dtb(int num) {
String resultOf = "";
// 新建一个DecimalismToBinary类的对象
DecimalismToBinary decimalism = new DecimalismToBinary();
// 正整数的方法
if (num >= 0 && num <= 127) {
resultOf = decimalism.printD2BP(num);
System.out.println(resultOf);
} else if (num >= -128 && num < 0) {
resultOf = decimalism.printD2BN(num);
System.out.println(resultOf);
} else {
System.out.println("超出范围 请输入-128~127之间的数字");
}
}
// 2.1正整数的十进制转换为二进制 并打印出来,无返回值 0是48 1是49
public String printD2BN(int n) {
String result = "";// n对应正数的二进制
String resultN = "";// 负数的二进制
int n1 = n; // 用于保留原来的n
// 新建一个DecimalismToBinary类的对象
// DecimalismToBinary decimalism = new DecimalismToBinary();
n = Math.abs(n);
result = printD2BP(n);
for (int i = 0; i <= 7; i++) {
int alph = (int) result.charAt(i);
if (alph == 48) {
alph = 49;
} else {
alph = 48;
}
if (i == 7) {
if (alph == 48) {
alph = 49;
} else {
alph = 48;
}
}
resultN = resultN + (char) alph;
}
return resultN + "\t" + n1 + "对应的二进制" + "\n" + result + "\t" + n + "对应的二进制";
}
// 2.2正整数的十进制转换为二进制 并打印出来,无返回值
public String printD2BP(int n) {
String resultP = "";
int s = 0;
int ys = 0;
while (true) {
if (n > 1) {
s = n / 2;
ys = n % 2;
resultP = ys + resultP;
n = s;
} else {
resultP = n + resultP;// 如果n<=0 ,输出本身
break;
}
}
// 判断长度是否是8+1位,否则前面加0
while (resultP.length() < 8) {
resultP = "0" + resultP;
}
//
return resultP;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。