Conversion de binary en hexadécimal en décimal

J’ai le nombre binary 1010 1011. Je sais que c‘est AB en hex et que je sais que A = 10 et B = 11 en décimal. Mais comment passer de 10 à 11 en décimal au nombre final de 171?

Avec hex je ferais

AB 0xAB = (10 * 16^1) + (11 * 16^0) = 171 

Puis-je faire quelque chose de similaire avec les nombres décimaux allant de 10 et 11 à 171? En gros, je cherche simplement un moyen rapide de convertir n’importe quel nombre binary sans calculasortingce.

Je ne pense pas qu’il existe un moyen beaucoup plus facile que A × 16 + B.

En fonction de ce que vous essayez de faire et de la langue que vous utilisez, vous pouvez utiliser l’opérateur Maj gauche et additionner les valeurs.

En C ++:

 unsigned short val_a = (0x1010 << 4); unsigned short val_b = 0x1011; unsigned short result = val_a + val_b; 

Le résultat est toujours un short signé non signé.

En C, vous pouvez décaler la multiplication pour obtenir AB de A et B:

 int number = A << 4 + B; 

si vous stockez A en 1010 (décimal) et B en 1011, vous pouvez convertir:

 int bin2dec(unsigned int s){ int v, p; for (v = 0, p = 1; s > 0; s=s>>1) { v = v+p*(s%2); v++; p*=2;} return v; } int number = bin2dec(A) << 4 + bin2dec(B);