Как я могу преобразовать десятичное число в ровно 8-битный двоичный файл? - PullRequest
0 голосов
/ 03 мая 2019

Я хочу написать функцию для преобразования числа в 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 Ответ

1 голос
/ 03 мая 2019

Вы можете отформатировать целое число 20 как 00010100, используя этот oneliner:

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
...