gpt4 book ai didi

c# - 有符号整数到无符号整数和 DWORD 转换

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:22 26 4
gpt4 key购买 nike

我有一个 Win32 API 调用,它返回一个带符号的 32 位整数值 (-2147022987)。

在 Windows 计算器中(在程序员 View 中 Alt-3)模式设置为 DecDword 如果我输入 -2147022987 的值并且然后将模式切换到 Word 我得到 1909。我是否正确理解 1909 是 DWord 中包含的两个 Word 之一的表示>?这个值被认为是低阶 Dword 还是高阶 Dword

我如何在 C# 中以编程方式执行此转换,以便我可以将值与下面定义的枚举类型相匹配?

public enum LogonError : ushort
{
LogonSuccessful = 0,
PasswordMustChange = 1907,
NoSuchUser = 1317,
LogonFailure = 1326,
AccountRestriction = 1327,
AccountDisabled = 1331,
InvalidLogonHours = 1328,
NoLogonServers = 1311,
InvalidWorkstation = 1329,
AccountLockedOut = 1909,
AccountExpired = 1793,
PasswordExpired = 1330
}

最佳答案

您可以使用 &(按位与)运算符,如下所示:

int i = -2147022987;
LogonError err = (LogonError)(i & 0xffff); // 1909

关于c# - 有符号整数到无符号整数和 DWORD 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27535292/

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