0
我將一些整數轉換爲十六進制,但我有問題是當我通過一個負值將其轉換爲十六進制。負詮釋到十六進制轉換
實施例:在此情況下
String satpos = "13.0";
String satposs=satpos.replaceAll("\\.", "");
int satposition = Integer.parseInt(satposs);
String nids = Integer.toHexString(satposition);
String finished = nids+"0000";
應用返回「820000」,並且是正確的值,我需要。 但是,如果我通過:
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'? –
我正在開發一個衛星定位應用程序,該應用程序將所有關於頻道的信息製作成一個唯一的ID,用於從DVB接收器「調用」頻道,我從dev獲得的解釋是: '軌道位置是13, 0 - 在130(十進制)=> 82(十六進制) - 加0000.最終結果命名空間= 820000' 在這種情況下軌道位置這個頻道是-7.0 – Psycho
什麼表示你打算爲負整數? Java基於使用2的補碼。 70的十六進制表示是46,其2的補碼是ffffffba。如果您需要負整數的不同表示法,則需要指定它並進行轉換。 –