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語句中的臨時值。 我定義臨時值作爲uint
,和我一樣的錯誤:C++到c#語句
Cannot implicitly convert type 'uint' to 'bool';
我明白一個事實是,在C++零爲false
,以及任何不爲零的true
。 但是,在我看來,這並不適用。你能給我一個暗示嗎?
當您提供錯誤消息時,您必須**指定錯誤發生在哪條線上。 – abelenky