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。如果您需要负整数的不同表示法,则需要指定它并进行转换。 –