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