Java:如何从32位HEX获得高16位和低16位的值?

时间:2010-12-06 17:49:24

标签: java

需要有关如何执行以下操作的解决方案:接收十进制值,将其转换为32位十六进制,然后将该32位十六进制分开并获得高16位和低16位值。我一直在挖网,找不到太多信息。

3 个答案:

答案 0 :(得分:5)

不确定为什么要转换为十六进制,而是将32位值直接转换为两个16位值。

int x = ...
short high = x >> 16;
short low = x & 0xFFFF;

答案 1 :(得分:4)

我希望这是一个家庭作业问题。因此,我将为您提供可以帮助您解决问题的信息,而不是解决方案。

  1. 将数字转换为十六进制。这可以使用Integer的toHexString()方法完成。
  2. 在左侧添加足够的零,使其长8个字符(8个十六进制字符代表32位)。你可以通过在一个循环中逐个添加零来实现这一点,直到它长达8个字符,或者(更好的方法)只需在左边添加7个零并且只处理最右边的8个字符。
  3. 将最右边的4个字符作为低16位,将4个字符紧接在左边作为高16位。这可以使用String的substring()方法和length()以及一些简单的减法来完成。

答案 2 :(得分:-1)