web-dev-qa-db-ja.com

android intから16進数への変換

Intを16進数値に変換する必要があります。たとえば、これはint値です。

int_value = -13516;

16進数値に変換するには、次のようにします。

hex_value = Integer.toHexString(int_value);

私が得るべき値は:-34CC(私はそれをポジティブにするべきかどうかわかりません)。

変換はそのように行うということです、私が得る値は:ffff cb34

この関数を使用してこの変換を行うことはできませんか?

16
masmic

ドキュメントには、_Integer.toHexString_がintの16進数表現を符号なしの値として返すと記載されています。

私はInteger.toString(value, 16)があなたが望むものを達成すると信じています。

24
arnefm
public static int convert(int n) {
  return Integer.valueOf(String.valueOf(n), 16);
}
 // in onstart:
 Log.v("TAG", convert(20) + "");  // 32
 Log.v("TAG", convert(54) + "");  // 84

From: Java Convert integer to hex integer

3
VM4
String.format("#%06X", (0xFFFFFF & colorYellow));

出力:#FFC107

3
Pablo Cegarra

Integer.toHexStringString.format( "%x")はどちらも符号をサポートしていません。この問題を解決するには、3項式を使用できます。

    int int_value = -13516;
    String hex_value = int_value < 0
                       ? "-" + Integer.toHexString(-int_value)
                       : Integer.toHexString(int_value);
3
Kurt Huwig

整数から16進数および16進数から整数への変換について、次のコードを実行します。

public class MainActivity extends Activity {

int number;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    number = 678668;
    Log.i("ACT", "Integer Number  " + number);

    /**
     * Code for convert integer number to hex number. two mwthods.
     */
    Log.i("ACT", String.format("#%x", number)); // use lower case x for
                                                // lowercase hex
    Log.i("ACT", "#" + Integer.toHexString(number));

    /**
     * Code for convert hex number to integer number
     */
    String hex = Integer.toHexString(number).replace("/^#/", "");
    int intValue = Integer.parseInt(hex, 16);

    Log.i("ACT", "Integer Number  " + intValue);
   }

}
1
mdDroid

上記の答えがあなたに署名されたビットの正確な値を与えるとは思いません。たとえば、11の値は0Bですが、-11の値は-BではなくF5になります。2の補数がこれを解決するためにゲームに入るので、上記の答えを変更しました

int int_value = -11;
 String hex_value = int_value < 0
                           ? Integer.toHexString(int_value+65536) :    Integer.toHexString(int_value);
 String shortHexString = hex_value.substring(2); 

ここで、65536は2 ^ 16です。期待どおりの結果が得られます。ハッピーコーディング:)

  • リストアイテム
1
Abhilash