数値を16進数表記したい場合、int型ではInteger.toHexStringメソッドを、long型ではLong.toHexStringメソッドが利用できます。基数16の符号なし整数が文字列として返されるので、もし、10進数の「-10」→16進数の「-A」というように、負の数のときはマイナス符号を付けた形式にしたければ、下図のような小さなメソッドを作ると便利です。
しかし、実数型においてはこのようなメソッドはありません(※)。よって、10進数の「-255.5」→16進数の「-ff.8」というように、小数点を含む数値を16進数表記したり、long型の範囲を超える値を16進数表記するには、このような機能を持つクラスライブラリを探し求めるか、自前で作成することになります。手順は以下のとおりです。
一例として、double型の実数を渡すと、16進数表記を返すメソッドを試作しました。負の数のときはマイナス符号を付ける形式とし、小数部が無限小数になる可能性があることから、小数点以下8けたまで求めるようにしてあります。
※実数をIEEE754浮動小数点表記形式に変換して、16進数で得ることを、実数の16進数変換と呼んでいる場合もあるようです。double型の場合、下記のように2つのメソッドを組み合わせると得られます。
String Long.toHexString(Double.doubleToRawLongBits( double )) 例:10進数の「-255.5」→16進数の「c06ff00000000000」。
Copyright © ITmedia, Inc. All Rights Reserved.
Java Agile 鬯ッ�ョ�ス�ォ�ス�ス�ス�ェ鬮ッ蛹コ�サ繧托スス�ソ�ス�ス�ス�ス�ス�ス�ス�ス�ス�コ鬮」蛹�スス�オ髫エ竏オ�コ�キ�ス�ク�ス�キ�ス�ス�ス�ケ髫エ雜」�ス�「�ス�ス�ス�ス�ス�ス�ス�ウ鬯ゥ蟷「�ス�「�ス�ス�ス�ァ�ス�ス�ス�ス�ス�ス�ス�ュ鬯ゥ蟷「�ス�「髫エ雜」�ス�「�ス�ス�ス�ス�ス�ス�ス�ウ鬯ゥ蟷「�ス�「�ス�ス�ス�ァ�ス�ス�ス�ス�ス�ス�ス�ー