??? 02/09/07 15:02 Read: times |
#132375 - C Responding to: ???'s previous message |
I can't (be bothered to) make out what your intermediate output is supposed to be doing, so your BASIC code boils down to:
NEMA$ = "$GPRMC,000004,V,3714.6284,N,12146.9181,W,0.000,0.0,290697,15.4,E*4C" PRINT " " + NEMA$ chksum = ASC(MID$(NEMA$, 2, 1)) FOR x = 3 TO LEN(NEMA$) - 3 chksum = ASC(MID$(NEMA$, x, 1)) XOR chksum NEXT x PRINT " NEMA Checksum is " + HEX$(chksum) And the 'C' equivalent is, I think: void main( void ) { unsigned char checksum; int x; char nema_string[] = "$GPRMC,000004,V,3714.6284,N,12146.9181,W,0.000,0.0,290697,15.4,E*4C"; printf( " %s\n", nema_string ); checksum = nema_string[0]; for( x = 3; x < strlen(nema_string)-3; ++x ) { checksum ^= nema_string[x]; } printf( " NEMA Checksum is %02X\n", checksum ); } |