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