アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっています。

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

よろしくお願いいたします。

A 回答 (4件)

こんなのどうかな。

数値の状態で16進数での最下桁を切り分けてから変換するということですが、この方が String にしてから切り分けるよりは速いかも知れない。(最後の所でしかStringのインスタンスを作らないで済むので)。

int a = 0x1234F;
int sign = a & 0xf;
int b = Integer.parseInt(Integer.toHexString(a >>> 4));
    • good
    • 0

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);
}
}
    • good
    • 0

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

    • good
    • 0

>ネットで調べましたが、74575にする方法しか検索できませんでした。



10進数で74575が得られる方法がわかるなら、その数字をInteger.toHexStringで16進数に変換すれば"1234"がStringで得られます。あとはそれをparseIntするなりすればよいかと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/04/09 20:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!