我可以用一个函数在java中将八进制转换为十六进制吗?
答案 0 :(得分:5)
没有单一的方法,但您可以通过两个步骤轻松完成:
String
解析为int
(或long
,具体取决于预期范围)int
/ long
格式化为十六进制String
。这两个步骤可分别使用Integer.parseInt(String, int)
和Integer.toString(int, int)
完成。请务必使用双参数版本,并分别为8和16传递八进制和十六进制。
答案 1 :(得分:3)
这一切都假设您的数字,前后都将存储在一个字符串中(因为讨论int / Integer的基础是没有意义的):
Integer.toHexString(Integer.parseInt(someOctalString, 8));
答案 2 :(得分:0)
String octalNo="037";
System.out.println(Long.toHexString(Long.parseLong(octalNo,8)));
答案 3 :(得分:0)
String input = "1234";
String hex = Long.toHexString(Long.parseLong(input,8));
答案 4 :(得分:0)
/**
* This method takes octal input and convert it to Decimal
*
* @param octalInput
* @return converted decimal value of the octal input
*/
public static int ConvertOctalToDec( String octalInput )
{
int a;
int counter = 0;
double product = 0;
for ( int index = octalInput.length() ; index > 0 ; index -- )
{
a = Character.getNumericValue( octalInput.charAt( index - 1 ) );
product = product + ( a * Math.pow( 8 , counter ) );
counter ++ ;
}
return ( int ) product;
}
/**
* This methods takes octal number as input and then calls
* ConvertOctalToDec to convert octal to decimal number then converts it
* to Hex
*
* @param octalInput
* @return Converted Hex value of octal input
*/
public static String convertOctalToHex( String octalInput )
{
int decimal = ConvertOctalToDec( octalInput );
String hex = "";
while ( decimal != 0 )
{
int hexValue = decimal % 16;
hex = convertHexToChar( hexValue ) + hex;
decimal = decimal / 16;
}
return hex;
}
答案 5 :(得分:0)
我会做这样的事情
String oth=new BigInteger("37777777401",8).toString(16); //this is -255 to hex
System.out.println("octal to hex "+ oth);