我正在尝试将逻辑右移(>>>
)(Difference between >>> and >>)的Java代码转换为C#
Java代码
return hash >>> 24 ^ hash & 0xFFFFFF;
C#被标记为>>>
,因为语法错误。
如何解决这个问题?
更新1
人们建议在C#中使用>>
,但它并没有解决问题。
System.out.println("hash 1 !!! = " + (-986417464>>>24));
是197
但是
Console.WriteLine("hash 1 !!! = " + (-986417464 >> 24));
是-59
谢谢!
答案 0 :(得分:9)
Java需要引入>>>
,因为它的唯一无符号类型是char
,其操作以整数形式完成。
uint h = (uint)hash;
return h >> 24 ^ h & 0xFFFFFF;
答案 1 :(得分:-1)
对于C#,您只需使用>>
即可