我想编写一个函数将数字转换为 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/