java - 如何将十进制数转换为 8 位二进制数?

标签 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。

最佳答案

您可以使用以下 oneliner 将整数 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

关于java - 如何将十进制数转换为 8 位二进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55968482/

相关文章:

java - 无法在 Eclipse 的“创建 Servlet”对话框中选择项目

python - 在 python 中获取 Decimal 的 Ceil()?

c++ - 加密数字 C++

c# - 为什么 Convert.ToInt32() 舍入到最接近的偶数,而不是最接近的整数?

使用 getImageData() 时,html5 Canvas 总是返回 8 位颜色

php - 尝试通过 Socket 向 ZVT 终端发送数据

java - 检查无向图中的奇环

Java 启发式搜索

java - 如何使用 sbt 将 java 库与 scala 一起使用?

math - Tensorflow 中如何进行 8 位算术?