translacja do C#

0

Witam,
czy ktoś mógłby mi to przetłumaczyć do c#?

unsigned long LongCrc( unsigned char *ptr )
{
long i ;
unsigned long CRC;
CRC = 0;
for (i=0 ; i<(x * 132) ; i++)
{
if (CRC & 0x80000000) CRC = (CRC << 1) | 0x00000001 ;
else CRC = (CRC << 1) ;
CRC ^= *ptr++;
}
return CRC ;
}
0

Najpierw powiedz w jakiej postaci chcesz mieć parametr ptr… czy przerobiony „jak się należy” na C#-ową tablicę, czy jednak potrzebny ci ten wskaźnik.

Ale zakładając że to pierwsze, i że powyższy long ma 32 bity, to będzie coś w stylu

uint LongCrc(char[] tab)
{
  int i;
  uint CRC;
  CRC = 0;
  for (i=0 ; i<(x * 132) ; i++)
  {
    if (CRC & 0x80000000) CRC = (CRC << 1) | 0x00000001 ;
    else CRC = (CRC << 1) ;
    CRC ^= tab[i];
  }
  return CRC;
}

(tak naprawdę to już w C ten kod powinien był tak wyglądać, a nie kombinowanie na wskaźniku...)

0

dokładnie o to chodziło
tylko że jeszcze rzuca sie o tą linijkę

(CRC & 0x80000000) -Cannot implicitly convert type 'uint' to 'bool'

jak to obejśc ?

0
stefano napisał(a)

dokładnie o to chodziło
tylko że jeszcze rzuca sie o tą linijkę

(CRC & 0x80000000) -Cannot implicitly convert type 'uint' to 'bool'

jak to obejśc ?

spróbuj dorzucić !=0

1 użytkowników online, w tym zalogowanych: 0, gości: 1