实现十进制负数转化为二进制数。

  • 转展相除法
  • 用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;}

}