实现十进制负数转化为二进制数。
- 转展相除法
- 用 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;
}
}