タグ

JavaとTIPSに関するryoasaiのブックマーク (3)

  • 実数値を16進数表記するメソッドを作るには

    数値を16進数表記したい場合、int型ではInteger.toHexStringメソッドを、long型ではLong.toHexStringメソッドが利用できます。基数16の符号なし整数が文字列として返されるので、もし、10進数の「-10」→16進数の「-A」というように、負の数のときはマイナス符号を付けた形式にしたければ、下図のような小さなメソッドを作ると便利です。 しかし、実数型においてはこのようなメソッドはありません(※)。よって、10進数の「-255.5」→16進数の「-ff.8」というように、小数点を含む数値を16進数表記したり、long型の範囲を超える値を16進数表記するには、このような機能を持つクラスライブラリを探し求めるか、自前で作成することになります。手順は以下のとおりです。 整数部を基数(16)で割った余りを得て16進数化し、この整数商に対して同様の手順を、整数商が0にな

    実数値を16進数表記するメソッドを作るには
  • How to get 0-padded binary representation of an integer in java?

    for example, for 1, 2, 128, 256 the output can be (16 digits): 0000000000000001 0000000000000010 0000000010000000 0000000100000000 I tried String.format("%16s", Integer.toBinaryString(1)); it puts spaces for left-padding: ` 1' How to put 0s for padding. I couldn't find it in Formatter. Is there another way to do it? P.S. this post describes how to format integers with left 0-padding, but it is not

    How to get 0-padded binary representation of an integer in java?
  • Java書式付き出力メモ(Hishidama's Java Formatter/Formattable Memo)

    第一引数で書式を指定し、その書式に則って第二引数以降の値を編集(変換)して出力する。 (第二引数以降の値は、可変長引数で複数指定できる) System.out.printf("値1=%d 値2=%d", 123, 456); String s = String.format("%04x", 789); 書式には「%」が入った文字列を指定する。「%」の書式指定に従って変換が行われる。 デフォルトでは、複数の%指定がある場合、第二引数以降の値が順番に使われる。 引数が多い分には無視されるだけなので別に構わないが、指定に該当する引数が足りないと例外が発生する。 変換の実体はFormatterクラスにある。 したがってどのような書式があるかについてはFormatterJavadocに載っているが、代表的なのは以下のようなもの。 C言語と同様の書式指定 書式 説明 例

  • 1