web-dev-qa-db-ja.com

Java整数を16進整数に変換

整数を別の整数に変換しようとしています。16進数で印刷すると、元の整数と同じに見えます。

例えば:

20から32への変換(0x20)

54から84への変換(0x54)

53
user1215143
public static int convert(int n) {
  return Integer.valueOf(String.valueOf(n), 16);
}

public static void main(String[] args) {
  System.out.println(convert(20));  // 32
  System.out.println(convert(54));  // 84
}

つまり、元の数値を16進数であるかのように扱い、10進数に変換します。

39
João Silva

最も簡単な方法は、Integer.toHexString(int)を使用することです

250
Ajith

int to hexに変換する別の方法。

String hex = String.format("%X", int);

小文字の大文字Xxに変更できます。

例:

String.format("%X", 31)結果1F

String.format("%X", 32)結果20

11
Wit
int orig = 20;
int res = Integer.parseInt(""+orig, 16);
7
dasblinkenlight

次のようなものを試すことができます(紙の上で行う方法):

public static int solve(int x){
    int y=0;
    int i=0;

    while (x>0){
        y+=(x%10)*Math.pow(16,i);
        x/=10;
        i++;
    }
    return y;
}

public static void main(String args[]){
    System.out.println(solve(20));
    System.out.println(solve(54));
}

あなたがこれを与えた例では、0 * 16 ^ 0 + 2 * 16 ^ 1 = 32と4 * 16 ^ 0 + 5 * 16 ^ 1 = 84を計算します。

5
ppalasek
String input = "20";
int output = Integer.parseInt(input, 16); // 32
4
ggreiner

以下は、positive整数のヘキサ表現のみを印刷する場合に最適化されています。

ビット操作、ASCII文字のutf-8値、および末尾のStringBuilderの反転を回避するための再帰のみを使用するため、非常に高速です。

public static void hexa(int num) {
    int m = 0;
    if( (m = num >>> 4) != 0 ) {
        hexa( m );
    }
    System.out.print((char)((m=num & 0x0F)+(m<10 ? 48 : 55)));
}
1
Snicolas

これを行うだけです:

public static int specialNum(num){

    return Integer.parseInt( Integer.toString(num) ,16)
}

特別な10進整数を16進数に変換する必要があります。

0
ed9w2in6