• ベストアンサー

0x01234Fを数字の1234に変換

いつもお世話になっています。 バイナリで構成されたデータがあります。 その中に設定されている0x1234Fを10進数に変換した74575ではなく、見たままの1234として取り出すにはどのようにすればいいでしょうか?(最後のFは正負判断に使用します) ネットで調べましたが、74575にする方法しか検索できませんでした。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.1

>ネットで調べましたが、74575にする方法しか検索できませんでした。 10進数で74575が得られる方法がわかるなら、その数字をInteger.toHexStringで16進数に変換すれば"1234"がStringで得られます。あとはそれをparseIntするなりすればよいかと思います。

nekotaru
質問者

お礼

toHexStringってのあったんですね。。。 ありがとうございました!

その他の回答 (3)

回答No.4

こんなのどうかな。数値の状態で16進数での最下桁を切り分けてから変換するということですが、この方が String にしてから切り分けるよりは速いかも知れない。(最後の所でしかStringのインスタンスを作らないで済むので)。 int a = 0x1234F; int sign = a & 0xf; int b = Integer.parseInt(Integer.toHexString(a >>> 4));

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

import java.io.*; import java.util.*; class Sample { public static void main (String args[]){ int num = 0x01234F; String num_hex = String.format("%X",num);//16進文字列 String num_delF= num_hex.substring(0,num_hex.length()-1);//文字列としての10進部分 int num_dec = Integer.parseInt(num_delF);//数値としての10進部分 System.out.print( num_dec); } }

回答No.2

Integer.toHexString()ではいかんのですか?

関連するQ&A