Fel*_* D. 1 c# delphi bit-shift
谁能解释一下这个delphi代码在做什么?
我知道它正在转移一些但我没有达到目的..
function PKV_GetKeyByte(const Seed : Int64; a, b, c : Byte) : Byte;
begin
a := a mod 25;
b := b mod 3;
if a mod 2 = 0 then
result := ((Seed shr a) and $000000FF) xor ((Seed shr b) or c)
else
result := ((Seed shr a) and $000000FF) xor ((Seed shr b) and c);
end;
Run Code Online (Sandbox Code Playgroud)
我如何将其转换为C#?
这是我到目前为止所得到的:
private byte PKV_GetKeyByte(Int64 seed, byte a, byte b, byte c)
{
byte result;
int aVal = a % 25;
int bVal = b % 3;
//IF-IS-MISSING
if(a % 2 == 0)
{
}
else
{
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我相信(未经测试)你想要的东西......
result := ((Seed shr a) and $000000FF) xor ((Seed shr b) or c))
Run Code Online (Sandbox Code Playgroud)
去
result = System.Convert.ToByte((Seed >> a) & 0x000000FF) ^ ((Seed >> b) | c));
Run Code Online (Sandbox Code Playgroud)
和
result := ((Seed shr a) and $000000FF) xor ((Seed shr b) and c));
Run Code Online (Sandbox Code Playgroud)
去
result = System.Convert.ToByte((Seed >> a) & 0x000000FF) ^ ((Seed >> b) & c));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |