Ne fonctionne pas comme prévu car il ne définit pas le bit MSB correct. J'utilise le compilateur metrowerks.passer à droite/ce que je fais mal?
//shifting right 5 characters
char * buffer;
buffer=global_buffer;
for(i=0;i<5;i++) //shift right for 1;
{
buffer[17-i]=(buffer[17-i]>>1)|(buffer[17-i-1]<<7);
}
tampon d'entrée EDIT (juste avant de boucle) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x2F, 0xA0, 0xC6,0x9D
i obtenu après boucle 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x17,0xD0,0xE3,0xCE
Définir "correct". Quelle est votre contribution? Quelle sortie attendez-vous? Quel résultat voyez-vous? – jason
Votre compilateur implémente "char" comme "char signé". Utilisez l'une des réponses ci-dessous pour éviter que la valeur décalée ne garde le bit de signe intact. –