gpt4 book ai didi

c# - c++ 到 c# for 语句

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:09:36 25 4
gpt4 key购买 nike

unsigned long uds_calc_key(unsigned long seed)
{
unsigned long temp;
unsigned short int index;
unsigned short int mult1;
unsigned short int mult2;

if(seed == 0)
{
seed = NC_DEFAULT_SEED;
}
else
{}

for (index=0x5D39, temp=0x80000000; temp; temp>>=1)
{
if (temp & seed)
{
index = croshortright(index, 1);
if (temp & NC_UDS_KEYMASK)
{
index ^= 0x74c9;
}
}
}

mult1 = (nc_uds_keymul[(index>>2) & ((1<<5)-1)]^index);
mult2 = (nc_uds_keymul[(index>>8) & ((1<<5)-1)]^index);
temp = (((unsigned long)mult1)<<16)|((unsigned long)mult2);
temp = mulu32(seed,temp);
return temp;
}

我不明白如何在 for 语句中转换该临时值。我将 temp 值定义为 uint,但出现如下错误:

Cannot implicitly convert type 'uint' to 'bool';

我理解在 C++ 中零为 false,任何非零为 true。但据我所知,这并不适用。你能给我一个提示吗?

最佳答案

在 C++ 中,整数可以用在 if 语句中。在 C# 中,您只能使用计算结果为 bool 的表达式。您的表达式 temp & seed 未计算为 bool 值。您应该将 C# 中的条件更改为:

if(0 != (temp & seed)) {}

关于c# - c++ 到 c# for 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18357576/

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