メソッドInteger.toHexString()
とがありLong.toHexString()
ます。何らかの理由で、彼らは実装しませんでしたShort.toHexString()
。
Shortを16進文字列に変換する標準的な方法は何ですか?
等しいは短い値ではないInteger.toHexString()
ため、使用できません。Integer.toHexString(-33)
ffffffdf
メソッドInteger.toHexString()
とがありLong.toHexString()
ます。何らかの理由で、彼らは実装しませんでしたShort.toHexString()
。
Shortを16進文字列に変換する標準的な方法は何ですか?
等しいは短い値ではないInteger.toHexString()
ため、使用できません。Integer.toHexString(-33)
ffffffdf
システムshort
で16ビットとして表されている場合は、次のことも簡単に実行できます。
String hex = Integer.toHexString(-33 & 0xffff);
はい、あなたは単に2つの最下位バイトを取ることができます。
これは、2の補数表現の基本的な機能です。
Integer.toHexString
inを短い値の16進文字列に変換できます。
Integer
の32 bit
、およびShort
のです16 bit
。したがって、forに変換されたHex String
forから最上位16ビットを削除して、 forを取得できます。short value
integer
Hex String
Short
Integer -> -33 = 11111111 11111111 11111111 11011111 == Hex = ffffffdf
Short -> -33 = 11111111 11011111 == Hex = ffdf
だから、あなたが望むものを手に入れるためにの最後の4
文字を取るだけです。Hex String
だから、あなたが欲しいのは:-
Short sh = -33;
String intHexString = Integer.toHexString(sh.intValue());
String shortHexString = intHexString.substring(4);
私はそれがうまくいくと思います。
これも短期間で機能するはずです
UnicodeFormatter.charToHex((char)c);
UniocdeFormatter.javaは、http ://docs.oracle.com/javase/tutorial/displayCode.html?code = http://docs.oracle.com/javase/tutorial/i18n/text/examples/UnicodeFormatterからダウンロードできます。 java
これを行う最も簡単な方法ではありませんが、バイト配列に変換してから16進文字列に変換することで実行できます。
short a = 233;
byte[] ret = new byte[2];
ret[0] = (byte)(a & 0xff);
ret[1] = (byte)((a >> 8) & 0xff);
StringBuilder sb = new StringBuilder();
for (byte b : ret) {
sb.append(String.format("%02X ", b));
}
私はそれがほとんどそれをするだろうと思います。