- ベストアンサー
0x01234Fを数字の1234に変換
いつもお世話になっています。 バイナリで構成されたデータがあります。 その中に設定されている0x1234Fを10進数に変換した74575ではなく、見たままの1234として取り出すにはどのようにすればいいでしょうか?(最後のFは正負判断に使用します) ネットで調べましたが、74575にする方法しか検索できませんでした。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>ネットで調べましたが、74575にする方法しか検索できませんでした。 10進数で74575が得られる方法がわかるなら、その数字をInteger.toHexStringで16進数に変換すれば"1234"がStringで得られます。あとはそれをparseIntするなりすればよいかと思います。
その他の回答 (3)
- noboru2000
- ベストアンサー率33% (47/140)
こんなのどうかな。数値の状態で16進数での最下桁を切り分けてから変換するということですが、この方が String にしてから切り分けるよりは速いかも知れない。(最後の所でしかStringのインスタンスを作らないで済むので)。 int a = 0x1234F; int sign = a & 0xf; int b = Integer.parseInt(Integer.toHexString(a >>> 4));
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
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); } }
- Chronos198
- ベストアンサー率30% (105/349)
Integer.toHexString()ではいかんのですか?
お礼
toHexStringってのあったんですね。。。 ありがとうございました!