Articles of manipulation de bits

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 […]

Qu’est ce que c’est CHAR_BIT?

Citant le code pour calculer la valeur absolue entière (abs) sans twigment à partir de http://graphics.stanford.edu/~seander/bithacks.html : int v; // we want to find the absolute value of v unsigned int r; // the result goes here int const mask = v >> sizeof(int) * CHAR_BIT – 1; r = (v + mask) ^ mask; […]

Incrémenter des bits de données ‘masqués’

Je suis en train d’écrire un énumérateur d’arbre où j’ai rencontré le problème suivant: Je regarde les bits masqués, c’est-à-dire les bits où les bits définis sont un sous-ensemble d’un masque, à savoir 0000101 avec le masque 1010101 . Ce que je veux accomplir, c’est d’incrémenter les bits, mais seulement par rapport aux bits masqués. […]

Comment puis-je obtenir des données bit à bit à partir d’une valeur entière en C?

Je veux extraire des bits d’un nombre décimal. Par exemple, 7 est le binary 0111, et je veux obtenir 0 1 1 1 tous les bits stockés dans bool. Comment puis-je le faire? OK, une boucle n’est pas une bonne option, puis-je faire autre chose?

Soustraire / append de la valeur sans débordement ni débordement

Imaginez que j’ai deux octets non signés b et x . J’ai besoin de calculer bsub comme b – x et badd comme b + x . Cependant, je ne veux pas que le débordement / débordement se produise pendant ces opérations. Par exemple (pseudo-code): b = 3; x = 5; bsub = b – […]