メソッド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.toHexStringinを短い値の16進文字列に変換できます。
Integerの32 bit、およびShortのです16 bit。したがって、forに変換されたHex Stringforから最上位16ビットを削除して、 forを取得できます。short valueintegerHex StringShort
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));
}
私はそれがほとんどそれをするだろうと思います。