【发布时间】:2013-01-11 18:18:21
【问题描述】:
我需要将 C++ 代码翻译成 Java。我有两个担心的问题。
1) 将“unsigned int”从 C++ 转换为 Java 为“long”。 我选择使用 long 来增加存储容量。
2) 使用位运算符,特别是 |和
unsigned int a;
unsigned int b;
unsigned int c;
a | (b<<c)
在 Java 中可以这样做吗:
long a, b, c;
a | (b<<c)
请让我知道您认为我可能遇到的任何问题 做这些事情。
谢谢
【问题讨论】:
-
你试过并检查了结果吗?
-
当符号位变成 1 并咬住你时,你会很开心地调试代码。并不是说你做不到,而是要做到正确比看起来要难得多。 Java 中的位操作可能是一场噩梦。
-
如果
unsigned int在 C++ 中是 32 位的,那么0x40000000 << 2在 C++ 中是零,但在 Java 中是非零long。