Articles of manipulation de bits

Décalage arithmétique sur un entier signé

J’essaie de comprendre comment fonctionnent exactement les opérateurs de décalage arithmétique en C, et comment cela affectera les entiers 32 bits signés. Pour simplifier les choses, disons que nous travaillons dans un octet (8 bits): x = 1101.0101 MSB[ 1101.0101 ]LSB En lisant d’autres articles sur Stack Overflow et certains sites Web, j’ai constaté que: […]

Convertir 0x1234 en 0x11223344

Comment puis-je étendre le nombre hexadécimal 0x1234 à 0x11223344 de manière performante? unsigned int c = 0x1234, b; b = (c & 0xff) << 4 | c & 0xf | (c & 0xff0) << 8 | (c & 0xff00) << 12 | (c & 0xf000) < %p\n”, c, b); Sortie: 0x1234 -> 0x11223344 J’en ai […]

Comment cela marche-t-il? Tours étranges de Hanoi Solution

J’ai été perdu sur Internet quand j’ai découvert cette solution inhabituelle et itérative aux tours de Hanoi: for (int x = 1; x < (1 << nDisks); x++) { FromPole = (x & x-1) % 3; ToPole = ((x | x-1) + 1) % 3; moveDisk(FromPole, ToPole); } Ce message a également le code Delphi […]

Vérifier si un bit est défini ou non

Comment vérifier si un certain bit dans un octet est défini? bool IsBitSet(Byte b,byte nPos) { return …..; }

Que signifie XOR (OU exclusif)?

J’essaie de comprendre les opérateurs binarys en C # ou en général, en particulier ^ – exclusif ou . Par exemple: Étant donné un tableau d’entiers positifs. Tous les nombres apparaissent un nombre pair de fois, sauf un nombre qui apparaît un nombre de fois impair. Trouvez le nombre dans O (n) temps et espace […]

Comment append deux nombres sans utiliser ++ ou + ou un autre opérateur arithmétique

Comment append deux nombres sans utiliser ++ ou + ou tout autre opérateur arithmétique? C’était une question posée il y a longtemps dans une interview sur le campus. Quoi qu’il en soit, aujourd’hui, quelqu’un a posé une question concernant certaines manipulations de bits et, en réponse, une belle question de Stanford a été renvoyée. Je […]

Chemin efficace vers des bits adjacents OU en entier 64 bits

Ce que je veux faire est de prendre un entier non signé de 64 bits constitué de paires de bits et en créer un entier de 32 bits contenant 0 si les deux bits de la paire correspondante sont 0 et 1 sinon. En d’autres termes, convertissez quelque chose qui ressemble à: 01 00 10 […]

Android In App Billing: sécuriser la clé publique de l’application

A partir d’Android Dans App Billing version 3 (TrivialDrive) exemple d’application fourni avec sdk MainActivity.java /* base64EncodedPublicKey should be YOUR APPLICATION’S PUBLIC KEY * (that you got from the Google Play developer console). This is not your * developer public key, it’s the *app-specific* public key. * * Instead of just storing the entire literal […]

Quel est le moyen le plus simple de tester si un nombre est une puissance de 2 en C ++?

J’ai besoin d’une fonction comme celle-ci: // return true iff ‘n’ is a power of 2, eg // is_power_of_2(16) => true is_power_of_2(3) => false bool is_power_of_2(int n); Quelqu’un peut-il suggérer comment je pourrais écrire ceci? Pouvez-vous me dire un bon site Web où ce type d’algorithme peut être trouvé?

Meilleures pratiques pour les opérations de décalage circulaire (rotation) en C ++

Les opérateurs de décalage gauche et droit (<>) sont déjà disponibles en C ++. Cependant, je ne pouvais pas savoir comment je pouvais effectuer un décalage circulaire ou effectuer des rotations. Comment effectuer des opérations telles que “Rotation à gauche” et “Rotation à droite”? Tourner à droite deux fois ici Initial –> 1000 0011 0100 […]