我知道在二进制,十进制和八进制之间进行转换的几个通用公式,但我想知道java是否有任何内置方法或类在三者之间进行转换。例如,在Integer类中,有一些静态方法,如toBinaryString,toOctalString等允许进行十进制转换,但我还没有找到任何转换另一种方式。有谁知道什么?
特别是,我正在寻找从八进制和二进制转换为十进制以及八进制和二进制之间的方法
谢谢! X
答案 0 :(得分:3)
Integer.parseInt为基类提供了一个可选的第二个参数来解析它。所以要获取二进制文件,
Integer.parseInt(value, 2);
Octal,
Integer.parseInt(value,8);
答案 1 :(得分:1)
您正在寻找Integer.parseInt(String s, int radix)和Integer.toBinaryString(int i),Integer.toOctalString(int i)和Integer.toHexString(int i)。所有这些都是Integer类的静态方法。
所以将F hex变为1111二进制:
int fifteen = Integer.parseInt("F", 16);
String fifteenInBinary = Integer.toBinaryString(fifteen);
十五英寸将等于“1111”;
答案 2 :(得分:1)
您可以使用Long.toBinaryString()或Long.toOctalString()将小数转换为二进制或八进制。
这里有2个方法,从二进制转换为十进制,从八进制转换为十进制,你也可以使用这些方法从八进制转换为十进制再转换为二进制。
public long binaryToDecimal(String binary) {
long decimal = 0;
int power = 0;
for (int i = binary.length() - 1; i >= 0; i--) {
String digit = "" + binary.charAt(i);
decimal += Integer.parseInt(digit) * Math.pow(2, power++);
}
return decimal;
}
public long octalToDecimal(String octal) {
long decimal = 0;
int power = 0;
for (int i = octal.length() - 1; i >= 0; i--) {
String digit = "" + octal.charAt(i);
decimal += Integer.parseInt(digit) * Math.pow(8, power++);
}
return decimal;
}
答案 3 :(得分:0)
如何:parseInt(String s, int radix)
parseInt("-FF", 16) returns -255
parseInt("1100110", 2) returns 102
答案 4 :(得分:0)
你可以使用方法
Integer.toBinaryString(val);
代码可能如下所示:
public class NewClass4
{
public static void main(String[] args)
{
int value;
String binary;
Scanner sc=new Scanner(System.in);
value=sc.nextInt();
binary=Integer.toBinaryString(value);
System.out.println(binary);
}
}