从 C代码翻译到java代码时遇到几个问题:

1. unsigned int 的翻译,可以在java中使用long型数字

     比如 unsigned int xxx 翻译为 long yyy, 取值时用 yyy&0xffffffff 表示;

2. 移位问题

     unsigned int x = 0xffffffff;  x>>8 = 0x00ffffff

   用java则  long x = 0xffffff;  x>>8 = 0xfffffffffff,  就算(x>>8 )&0xfffffff之后的值还是0xffffffff。

   这一点是java不会处理的,就是无符号的移位问题,需要特别注意。

   解决办法就是参考无符号移位定义,(x>>8 )&0x00ffffff 这样才能得出和 c++一样的数值。

更多推荐

Java 中处理 unsigned int