乐趣区

关于java:实现十进制正数转化为二进制数

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

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


}

}

退出移动版