简单的问题,我有一些定制的java,允许拥有32位硬件变量。 我想为这样的变量指定一个常量 32 位值,但是,此命令失败 在以下场景中:
HWINTVar a = const.var(toHWint(32), 0xf1234567);
但在这种情况下有效:
HWINTVar a = const.var(toHWint(32), 0x11234567);
第一种情况的错误消息是常量值中可能会丢失临界数量的位,其原因是我传递给此方法的常量是有符号的。有没有一种简单的方法可以让我在 Java 中将此常量值解释为无符号值?我尝试过:
HWINTVar a = const.var(toHWint(32), (unsigned int) 0xf1234567);
HWINTVar a = const.var(toHWint(32), (unsigned integer) 0xf1234567);
但这显然不能在 Java 中工作,因为它不支持无符号数据类型。知道如何做到这一点吗?
干杯!
最佳答案
正确表示该常量的唯一方法是使用 long
文字,即 0xf1234567L
假设您可以,更改 const.var
的定义,使其第二个参数为 long
,并提取底部 32 位以将其放入您的 HWINTVar
。
关于java - 在 Java 中转换有符号整型常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13034249/