我试图将逻辑右移(>>>
)(>>>和>>之间的差异)转换为C#的Java代码
Java代码是
return hash >>> 24 ^ hash & 0xFFFFFF;
C#被标记>>>
为语法错误.
如何解决?
更新1
人们建议>>
在C#中使用,但它没有解决问题.
System.out.println("hash 1 !!! = " + (-986417464>>>24));
是197年
但
Console.WriteLine("hash 1 !!! = " + (-986417464 >> 24));
是-59
谢谢!
Java需要引入,>>>
因为它只有无符号类型char
,其操作以整数形式完成.
另一方面,C#具有无符号类型,它们在没有符号扩展的情况下执行右移:
uint h = (uint)hash; return h >> 24 ^ h & 0xFFFFFF;