我试图使用以下代码将八进制数转换为二进制数
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter octal number: ");
String oct = br.readLine();
int i= Integer.parseInt(oct,8);
String binary=Integer.toBinaryString(i);
System.out.println("Octal Number: "+binary);
但是这里的问题是如何得到前导零
发布于 2019-07-28 17:50:30
尝尝这个。
int[] vals = { 10, 34, 99, 1002, 40
};
for (int v : vals) {
// the 07 means a field width of 7 with 0's padding on left.
// th o means octal and the %n is newline.
System.out.printf("%07o%n", v);
}
//This does the same thing but returns a formatted string.
String paddedVal = String.format("%07o", 48);
System.out.println(paddedVal);
已经是八进制的字符串。
String octalVal = "57";
paddedVal = String.format("%07o", Integer.valueOf(octalVal, 8));
System.out.println(paddedVal);
// should print 0000057
二进位数。
octalVal = "57";
String bin = Integer.toBinaryString(Integer.valueOf(octalVal));
String paddedBin =
"00000000000000000000000000000".substring(0, 32 - bin.length())
+ bin;
System.out.println(paddedBin);
发布于 2019-07-28 17:49:42
这是一项简单的任务。让我们试着补充到8的乘数;
public static void main(String[] args) {
System.out.println(binaryPadLeft(Integer.toBinaryString(127)));
}
private static String binaryPadLeft(String number) {
StringBuilder b = new StringBuilder();
int mod = number.length() % 8;
if (mod > 0)
for (int i = 0, p = 8 - mod; i < p; i++) {
b.append('0');
}
b.append(number);
return b.toString();
}
给出01111111
对于120
,它屏蔽了01010000
https://stackoverflow.com/questions/57243438
复制相似问题