Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Help codice da C a VB

  1. #1

    Help codice da C a VB

    Come è possibile tradure il seguente codice C in un più compresibile VB6 o VB.net:

    /************************************************** **************
    CRC16 16bit CRC
    CCITT CRC16
    Cyclical Redundancy Check
    polynomial: X^16 + X^12 + X^5 + 1
    (used in XMODEMCRC communications protocol)
    ************************************************** ***************/
    union _crc {
    unsigned char b[2]; /* high byte is b[1], low byte is b[0] */
    unsigned w; /* word value */


    unsigned crc16(len, start_crc, p)
    int len; /* length of p */
    unsigned start_crc; /* starting value, initialize to zero */
    unsigned char *p; /* pointer to memory of which to calculate crc */
    {
    union _crc crc;
    int i;
    crc.w = start_crc; /* set up starting value of CRC */
    while (len-- >0)
    {
    crc.b[1] ^= *p++; /* xor value of next byte into HIGH byte of CRC */
    /* this is for an 80x86 processor */
    for(i=0;i<8;++i)
    if (crc.w & 0x8000) /* high bit set?? */
    {
    crc.w <<= 1; /* left shift one */
    crc.w ^= 0x01021; /* XOR value 0x1021 */
    }
    else
    {
    crc.w <<= 1; /* left shift one */
    }
    }
    return (crc.w);
    }

    char hello[] = “Hello World!”;
    unsigned crc;
    crc = crc16(strlen(hello), 0, hello);
    printf(“%04x\n”,crc);

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... in VB esiste l'operatore XOR e lo scorrimento a sinistra e a destra li fai con la moltiplicazione e divisione per 2 ... non hai le union ma non dovrebbe essere un problema ...

    Ci hai provato?

    P.S. Riformula il titolo ... vedi il regolamento

  3. #3
    No ma se mi puoi fare una esempio ti ringrazio molto ...
    ... d'altra parte sarebbe meglio per me se mi traducessi completamente il codice esclusa l'ultima parte sul printf che ho capito (sempre se non chiedo troppo). Grazie.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... insomma ... non e' questo lo spirito del forum (si da' una mano, non tutto il braccio ...) e poi non ci vuole anche tempo per fare una cosa del genere ...

  5. #5
    Comunque rileggendo il regolamento non mi pare di aver violato qualche regola ... dimmi se sbaglio. ciao.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non l'hai letto abbastanza bene ... punti 2, 3 e 6 ... ma non e' questo il fatto importante ... infatti ho parlato di "spirito" del forum ...

    Una cosa e' correggere una o due istruzioni o una impostazione di un codice proposto, altra cosa e' volere la "pappa pronta" ... quello puo' essere un lavoro ...

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    La domanda verte su VB6/VB.NET, quindi andrebbe inserita nell'apposita area, come indicato nel Regolamento.

    Inoltre, utilizzerei un titolo più significativo e cercherei, riprendendo lo "spirito del forum" citato da Oregon, di fare qualche tentativo di conversione, richiedendo aiuto su difficoltà specifiche.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.