在Java中将八进制转换为十六进制的函数

时间:2011-03-16 11:42:44

标签: java

我可以用一个函数在java中将八进制转换为十六进制吗?

6 个答案:

答案 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);