【问题标题】:Increment a Hex value (JAVA)增加一个十六进制值(JAVA)
【发布时间】:2010-10-05 17:17:12
【问题描述】:

你能在 Java 中增加一个十六进制值吗?即“十六进制值”=“十六进制值”++

【问题讨论】:

  • 一个值就是一个值,为什么在这种情况下表示(二进制/八进制/十六进制/等)很重要?
  • 在问之前你应该自己尝试一下……这样很容易测试和自己学习。

标签: java hex increment


【解决方案1】:

这取决于十六进制值的存储方式。如果你有一个字符串中的十六进制值,将其转换为整数,递增并转换回来。

int value = Integer.parseInt(hex, 16);
value++;
String incHex = Integer.toHexString(value);

【讨论】:

  • 如果有人需要,如果十六进制字符串的长度足以超过 int,那么你需要一个 long 类型来进行转换。
【解决方案2】:

简答:是的。这是

myHexValue++;

更长的答案:您的“十六进制值”可能存储为整数。将其转换为十六进制(而不是通常的十进制)字符串的业务是使用

Integer.toHexString( myHexValue )

从一个带有

的十六进制字符串
Integer.parseInt( someHexString, 16 );

M.

【讨论】:

    【解决方案3】:

    “十六进制值”是什么意思?您的值存储在什么数据类型中?

    注意 int/short/char/... 并不关心你的值最初是如何表示的:

    int i1 = 0x10;
    int i2 = 16;
    

    i1i2 将具有完全相同的内容。 Java(以及大多数其他语言)并不关心常量/值的表示法。

    【讨论】:

      【解决方案4】:

      是的。无论如何,所有整数都是二进制的,所以你如何声明它们并不重要。

      int hex = 0xff;
      hex++;  // hex is now 0x100, or 256
      int hex2 = 255;
      hex2++; // hex2 is now 256, or 0x100
      

      【讨论】:

        【解决方案5】:

        数字的基数纯粹是 UI 问题。在内部,整数存储为二进制。只有当您将其转换为人类表示时,您才会选择数字基数。所以你的问题真的归结为“如何增加一个整数?”。

        【讨论】:

          猜你喜欢
          • 2014-12-21
          • 2022-12-05
          • 2011-09-12
          • 2018-07-26
          • 2018-07-16
          • 2016-07-25
          • 1970-01-01
          • 2011-08-04
          • 2015-01-27
          相关资源
          最近更新 更多