FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ayuda conversión C++ a Delphi
Buenos días:
Tengo mi C++ un poco oxidado (vamos, como que no lo toco desde el 2000). El caso es que tengo que portar un par de funciones de C a Delphi para unos cálculos de CRC no estándares. Los códigos en cuestión son los siguientes: Código:
unsigned char crc8 (unsigned char *ptr, unsigned int length) { unsigned char crc; unsigned int i,n; unsigned int datum; unsigned char merker; crc = 0; for (i=0; i < (length); i++) { datum = *ptr++; crc ^= datum; for (n=0; n<8; n++) { if (crc & 1) merker = 1; else merker = 0; crc >>= 1; if (merker) crc ^= 0x92; } } return (crc); } Código:
unsigned int crc16 (unsigned char *ptr, unsigned int length) { unsigned int crc, datum; unsigned int i,n; unsigned char highbyte, lowbyte; unsigned char merker; crc = 0; for (i=0; i < (length/2); i++) { highbyte = *ptr++; lowbyte = *ptr++; datum = highbyte; datum <<= 8; datum |= lowbyte; crc ^= datum; for (n=0; n<16; n++) { merker = (crc & 1); crc >>= 1; if (merker) crc ^= 0x8408; } } return (crc); }
Lo que probablemente está mal de la función es el tema de los punteros de C, pero lo cierto es que no recuerdo cómo portarlos: Es decir: datum = *ptr++; (¿Tal vez con Addrs o Pointer?) Tampoco sé cómo portar sentencias como: merker = (crc & 1); o datum |= lowbyte Cualquier ayuda será bienvenida... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
ayuda con conversion de tipos:u_int64_t | davidj | Varios | 1 | 18-08-2008 01:47:55 |
Ayuda en conversión por favor ¡¡¡ | axlrafael | OOP | 5 | 17-07-2008 17:33:22 |
ayuda!!! conversion de qreport a pdf | chivix | Impresión | 0 | 02-03-2007 02:31:08 |
ayuda en conversión | Nelly | Varios | 2 | 09-10-2006 00:40:25 |
Ayuda con Conversion | RedVenom | Varios | 2 | 27-10-2003 01:17:29 |
|