0
いくつかの整数を16進数に変換していますが、問題は負の値を渡して16進数に変換するときです。16進数への負の整数
例:この場合
String satpos = "13.0";
String satposs=satpos.replaceAll("\\.", "");
int satposition = Integer.parseInt(satposs);
String nids = Integer.toHexString(satposition);
String finished = nids+"0000";
アプリケーション戻る「82万」と私が必要正しい値です。 しかし、私は渡す場合:
String satpos = "-7.0";
String satposs=satpos.replaceAll("\\.", "");
int satposition = Integer.parseInt(satposs);
String nids = Integer.toHexString(satposition);
String finished = nids+"0000";
アプリケーションに戻り "ffffffba0000を" しかし、私はすべてのヘルプは高く評価され、 "DCA0000"
を取得する必要があります。アンドレアスによってコメントに基づいて
なぜ '-70'は' DCA'であるべきですか? –
私はチャンネルに関するすべての情報を取り、DVB受信機からチャンネルを「呼び出す」ために使用できるユニークなIDを作成するsatfinderアプリを開発しています。私はdevから得た説明は '軌道位置は13、 0 - これを130(dec)=> 82(16進数) - 0000を追加します。最終結果名前空間= 820000' このチャンネルの軌道位置は-7.0です – Psycho
負の整数はどのような表現ですか? Javaは2の補数を使用しています。 70の16進表記は46であり、2の補数はffffffbaです。負の整数の表現が異なる場合は、それを指定して変換を行う必要があります。 –