如何将十进制数转换为正好8位的二进制数?

时间:2019-05-03 11:01:41

标签: java decimal 8-bit

我想编写一个将数字转换为8位二进制字符串的函数。 例如:对于20,我得到的结果是10100,我想要的预期结果是00010100。

public static int printBinaryform(int number) {
    int remainder;

    if (number <= 1) {
        System.out.print(number);
        return 0;
    }

    remainder = number % 2;
    printBinaryform(number >> 1);
    System.out.print(remainder);

    return remainder;
}

public static int encryptionNumber(int number, int key) {
    int encrrptionNumber = number ^ key;
    return encrrptionNumber;
}

输入为20,我期望输出为00010100,实际结果为10100。

1 个答案:

答案 0 :(得分:1)

您可以使用此单行格式将整数20格式化为00010100:

System.out.println(String.format("%08d", Integer.parseInt(Integer.toString(20, 2), 10)));

我不确定这是您要找的东西。无论如何,这是它的工作方式:

String str = Integer.toString(20, 2); // Turn an integer into a string consisting of numbers using base 2 (ie a string of 0:s and 1:s)

int i = Integer.parseInt(str, 10); // Parse the string assuming it is a decimal value

String.format("%08d", i); // Format the integer as a string with length 8 and leading 0:s