【发布时间】:2014-01-19 22:32:30
【问题描述】:
我正在将一些 C 代码转换为 Scala,因为我们正在(据称)进入公司大楼的现代世界,至少有人告诉我。
一些 C 代码使用无符号变量,这些变量对它们执行了大量的位级(移位)操作。
鉴于我相信 Scala(和 Java)和 JVM 都发现了无符号类型,我对如何将它们转换为 Scala 完全停滞不前。
任何建议表示赞赏。
【问题讨论】:
-
C 中无符号变量的类型是什么? (例如
char、intlong等) -
您好,所有操作都是无符号的,没有定义类型,所以我假设 K&R 风格,因此是整数。
-
下面的答案是一个很好的答案,尤其是对于 scala,但作为一个仅供参考,您可以通过
long l = i & 0x00000000ffffffffL;向上转换为有符号长整数(64 位),其中i是 Java 无符号整数.或者,如果这些不是来自外部来源......只需使用long