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++ to C# for statement
Cannot implicitly convert type 'uint' to 'bool';
Я понимаю, тот факт, что в C++ ноль является false
, и ничего не ноль true
. Но здесь это не применяется, насколько я вижу. Не могли бы вы рассказать мне об этом?
Когда вы сообщаете об ошибке, вы должны ** указать, в какой строке произошла ошибка. – abelenky