accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

Re: significations des opérateurs \ et *

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.lang.basic ] 

Retour : Accueil du site fr comp lang basic   charte stats de ce groupe


  Sujet:   Re: significations des opérateurs \ et *  
 De: NO_SPAM_jean_marc...@yahoo.fr.invalid (Jean-marc)
 Groupes: fr.comp.lang.basic
 Organisation: -= Belgacom Usenet Service =-
 Date: 14. Mar 2008, 20:19:13
 References: 1
val wrote:
> Bonjour,
>
> Je transcris un programme vb en c mais je ne sais pas comment
> interpréter les opérateurs
> \ (anti slash) et * (étoile) dans le code suivant d'un calcul de CRC.
>
>
>   tCRC = 0
>   For x = 1 To Len(sData)
>     tIndex = ((tCRC \ &H100&) And &HFF&) Xor Asc(Mid(sData, x, 1))
>     tCRCa = ((tCRC And &HFF&) * &H100&)
>     tCRCb = tTable(tIndex) And &HFFFF&
>     tCRC = (tCRCa Xor tCRCb) And &HFFFF&
>   Next
>   CRC16 = tCRC And &HFFFF&

Du coup la traduction devient triviale :

// Il suffit de mettre les bonnes constantes dans tTable ...

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

long tTable[256] =   {  0x00, 0x01, 0x02, 0x04,
                        0x05, 0x06, 0x07, 0x08
                        /* define constants here */
                     };

long CRC16(unsigned char *sData)
{
long tCRC      = 0L;
long tIndex    = 0L;
long tCRCa     = 0L;
long tCRCb     = 0L;
long size      = 0L;
long i         = 0L;

   size = strlen(sData);
   for(i = 0L; i<size; i++)
   {
      tIndex = ((tCRC >> 8) & 0xFF) ^ sData[i];
      tCRCa  = (tCRC & 0xFF) << 8;
      tCRCb  = tTable[tIndex] & 0xFFFF;
      tCRC   = (tCRCa ^ tCRCb) & 0xFFFF;
   }
   return tCRC & 0xFFFF;
}

int main(void)
{
unsigned char testString[] = "COUCOU LES GARS";
long crc = 0L;

   crc = CRC16(testString);

   printf("crc = %ld\n", crc);

   return 0;
}


-- 
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr


DateSujet  Auteur
14.03.
* significations des o
val
14.03.
+- Re: significations des o
Jean-marc
14.03.
`*   Re: significations des o
Jean-marc
15.03.
 `* Re: significations des o
val
15.03.
  `- Re: significations des o
Jean-marc
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)
Free counter and web stats