Inversion de bit
Hello,
Je cherche à définir un type de fichier, je prend les 2 premiers octets:
uint16_t c; [data getBytes:&c length:2];
Je cherche à obtenir ce résultat:
0xffd8
mais j'obtiens
0xd8ff
alors je swap:
(c << 8) | ((c >> 8)
Ca fonctionne mais quand je cherche à avoir un retour via NSLog() les j'obtiens:
0xd8ffd8
NSLog(@Valeur hexa %02x, (c << 8) | (c >> 8));
alors que
uint16_t d = (c << 8) | (c >> 8);
NSLog(@Veleur hexa %02x, d);
j'obtiens
0xffd8
Une explication du pourquoi ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Parce que ton format d'affichage (%x) dans NSLog est un entier codé sur plus de 16 bits (32) donc c<<8 ne fera pas disparaitre les 8 bits supérieurs.
Tu dois faire (dans le NSLog) :
ou
ou
ou ...
Ok, merci
https://fr.wikipedia.org/wiki/Boutisme
Il existe des fonctions dans Core Foundation pour échanger les bits selon le boutisme de la machine:
CFSwapInt16HostToBig et compagnie.
Il n'y a plus aujourd'hui dans les Mac que des processeurs Intel qui utilisent le petit-boutisme, mais dans le temps, nous avions des processeurs PowerPC qui utilisaient le gros-boutisme. Ces fonctions sont justement utiles parce qu'elles prennent en compte le boutisme de l'architecture pour laquelle le code est compilé.
Vous allez bien ensemble vous deux
Merci
Il suffit d'attendre le lendemain matin...
Non ?
Non les seules offres en français que j'ai eu à rédiger et rendre étaient pour l'état Luxembourgeois. Ils sont pas chiants sur les mots "officiels", y'en a pas. Sinon c'est quasiment que de l'anglais pour des multinationales avec des mots techniques et consensuels.
Je trouve qu'on va trop loin en France avec ça. Même la Belgique où j'ai vécu pendant quelques temps n'a pas cette lourdeur du parler correct. Enfin si mais ça sera plus un problème de langue, pas un problème de mots...
Au final en France le gros problème c'est qu'on veut être Français avant d'être industriel, commerçant ou autre. On te parle du grand besoin de créer le Google à la française, le Facebook à la française, du <truc qui marche mais qu'on a 15 ans de retard> à la française. Et on fini par vendre des calbuts made in France...
Oui je vis assez mal mon retour en France après avoir vécu dans d'autres pays francophones... 😬
Essaye le Quebec
J'aimerai bien mais si Belgique et Luxembourg sont à 15 minutes de chez moi le Quebec est bien plus loin 😧
Un jour sûrement.