gpt4 book ai didi

c# - vb6 与 c# 中的异或 (XOR)

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:39 27 4
gpt4 key购买 nike

我正在将一个 vb6 程序转换为 c#,但我不明白为什么我的异或操作的结果会给我不同的值。

vb6 代码:

'serialNum = 884167284, and dSize = 1953312760 here'
serialNum = serialNum Xor dSize 'serialNum = 1088322956 after this operation'
serialNum = serialNum Xor &HD7BF3A9C 'serialNum = -1755232496 after this operation'
GetDriveSerialNum = serialNum

C#代码:

//serialNum = 884167284, and dSize = 1953312760 here
serialNum = serialNum ^ dSize; //serialNum = 1088322956 after this operation
serialNum = serialNum ^ 0xD7BF3A9C; //serialNum = 2539734800 after this operation
return serialNum;

我需要 c# 代码给出作为 vb6 代码结果的负数。我该怎么做才能实现这一目标?

最佳答案

C# long 数据类型是 64 位长有符号整数。 VB6 long 数据类型是 32 位有符号整数。因此,在 VB6 中,您将获得操作集的符号位,而在 C# 中,它是未设置的。

在 C# 中改用 32 位整数类型 (int/Int32)。

关于c# - vb6 与 c# 中的异或 (XOR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28749622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com