Binari, decimal i hexadecimal: com passar de l'un a l'altre

Convertir entre bases sembla màgia fins que veus que sempre és la mateixa idea: cada dígit val segons el lloc que ocupa. Aquí aprendràs a passar de binari a decimal i de decimal a binari a mà, a llegir l'hexadecimal sense por i a traduir text a bits, amb comptes resolts i una taula del 0 al 15 per tenir a mà.

Actualitzat:

Què és un sistema posicional

En el nombre decimal 4.095 el 4 no val 4: val 4.000, perquè és al lloc dels milers. Cada posició multiplica el dígit per una potència de 10 (1, 10, 100, 1.000…). Aquest és el sistema posicional, i la base és la quantitat de dígits diferents que es fan servir: deu en el decimal.

El binari funciona igual, però amb base 2: només existeixen el 0 i l'1, i cada lloc val el doble que l'anterior. L'hexadecimal fa servir base 16: els setze dígits són del 0 al 9 i les lletres de la A a la F, i cada lloc val 16 vegades l'anterior. Els ordinadors treballen en binari perquè un circuit només ha de distingir dos estats (apagat i encès), i l'hexadecimal és una manera curta d'escriure aquests bits.

El que val cada lloc. Aprendre't de memòria les potències de 2 fins a 128 t'estalvia gairebé tots els càlculs.
Posició (de dreta a esquerra)Valor en binariValor en hexadecimal
1a11
2a216
3a4256
4a84.096
5a1665.536
6a321.048.576
7a6416.777.216
8a128268.435.456

De binari a decimal, a mà

S'escriu cada dígit amb el valor del seu lloc i se sumen només els llocs on hi ha un 1. Exemple amb 1101: de dreta a esquerra els llocs valen 1, 2, 4 i 8.

  1. Escriu el número i a sota el valor de cada posició: 1 1 0 1 sobre 8 4 2 1.
  2. Fixa't en què hi ha a cada lloc: un 1 al del 8, un 1 al del 4, un 0 al del 2 i un 1 al de l'1.
  3. Ignora els llocs que tenen un 0 (aquí, el del 2).
  4. Suma: 8 + 4 + 0 + 1 = 13. Per tant, 1101 en binari és 13 en decimal.

Amb més dígits és el mateix: 11111111 és 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, el valor més gran que cap en 8 bits. I 10110110 és 128 + 32 + 16 + 4 + 2 = 182.

De decimal a binari, per divisions successives

Es divideix el número per 2 una vegada i una altra, anotant el residu de cada divisió (sempre 0 o 1), fins a arribar a quocient 0. Els residus, llegits de baix cap amunt, són el número binari. Exemple amb 45:

Llegint els residus de baix cap amunt queda 101101. Per comprovar-ho, suma: 32 + 8 + 4 + 1 = 45.

Hi ha un mètode alternatiu que molts prefereixen: restar potències de 2 de la més gran a la més petita. Per a 200: hi entra el 128 (queda 72), hi entra el 64 (queda 8), no hi entren 32 ni 16, però sí el 8 (queda 0). Els llocs utilitzats són 128, 64 i 8, de manera que 200 = 11001000.

Hexadecimal: setze dígits i una taula per tenir a mà

Com que no existeixen dígits per al 10 fins al 15, es fan servir les lletres A, B, C, D, E i F. Un dígit hexadecimal equival exactament a quatre bits (un «nibble»), i per això convé tant: un byte, de 8 bits, s'escriu amb només dos dígits hexadecimals.

Per passar d'hexadecimal a decimal, multiplica cada dígit per la potència de 16 del seu lloc i suma. Per exemple, 3F = 3 × 16 + 15 = 63 i A3 = 10 × 16 + 3 = 163.

Del 0 al 15 en les quatre bases que mostra l'eina.
DecimalBinari (4 bits)OctalHexadecimal
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Per què es fa servir l'hexadecimal: bytes, colors i adreces

Un byte són 8 bits i va de 0 a 255 (00000000 a 11111111). Escriure bits a mà és lent i propens a errors; en hexadecimal el mateix byte són dos caràcters, de 00 a FF. Per passar de binari a hexadecimal, separa els bits en grups de quatre des de la dreta i substitueix cada grup pel seu dígit de la taula. Exemple: 11010111 es divideix en 1101 i 0111, que són D i 7, així que val D7. Com a decimal és 13 × 16 + 7 = 215.

El cas més conegut són els colors web. A #FF8800 hi ha tres bytes: FF per al vermell (255), 88 per al verd (136) i 00 per al blau (0). És un taronja intens: tot el vermell, una mica més de la meitat del verd i res de blau. L'hexadecimal també apareix en adreces de memòria, en codis d'error i en identificadors de xarxa.

De text a binari amb ASCII

Un ordinador desa cada lletra com un número, i aquest número com a bits. A la taula ASCII la A és 65, que en binari de 8 bits és 01000001. La paraula «Hi» són dues lletres: H és 72 (01001000) i i és 105 (01101001), així que s'escriu 01001000 01101001. Amb «Hola» són 72, 111, 108 i 97, és a dir 01001000 01101111 01101100 01100001, o en hexadecimal 48 6F 6C 61.

L'eina fa servir la codificació UTF-8: per a lletres bàsiques de l'anglès cada caràcter ocupa un byte de 8 bits, però una ñ, una lletra amb accent o un emoji ocupen diversos bytes, per la qual cosa donen més de 8 bits. Per exemple, la ñ són dos bytes: 11000011 10110001 (C3 B1 en hexadecimal).

Com fer tot això amb l'eina

El convertidor «Binari, decimal i hexadecimal» serveix per comprovar els teus càlculs a mà o per resoldre números llargs sense errors.

  1. Escriu el número al camp de la seva base: «Decimal (base 10)», «Binari (base 2)», octal o «Hexadecimal (base 16)». Els altres tres s'omplen sols.
  2. Si el dígit no correspon a la base (un 2 en binari, per exemple), l'eina t'ho avisa.
  3. Per a text, escriu-lo al camp «Text» i mira «Binari (8 bits per caràcter)» i l'hexadecimal per bytes. També pots enganxar bits en grups de 8 per tornar al text.
  4. Per a bases estranyes, fes servir «Qualsevol base (de 2 a 36)»: tries la base d'origen, la de destinació i el número.

Els límits: només converteix enters no negatius (sense decimals ni signe) i no posa zeros a l'esquerra per tu, així que si vols 8 bits fixos has d'omplir-ho a mà (13 és 00001101). Res del que escrius surt del teu navegador.

Errors comuns

Exercicis resolts per practicar

Intenta resoldre cada un abans de mirar la resposta i comprova-ho després amb l'eina.

Preguntes freqüents

Com passo 1101 de binari a decimal?

Sumes els valors dels llocs on hi ha un 1: 8 + 4 + 1 = 13. El segon dígit des de la dreta és un 0, així que el 2 no se suma.

Quant és 255 en binari i en hexadecimal?

255 és 11111111 en binari i FF en hexadecimal. És el valor més gran que cap en un byte de 8 bits.

Per què l'hexadecimal fa servir lletres?

Perquè necessita setze símbols diferents i el sistema decimal només n'aporta deu (0 a 9). Per això A val 10, B val 11, C val 12, D val 13, E val 14 i F val 15.

Quants números diferents es poden escriure amb 8 bits?

256, del 0 al 255. En general, amb n bits es poden representar 2 elevat a n valors.

L'eina converteix números negatius o amb decimals?

No, només enters no negatius. Per a text fa servir UTF-8, així que les lletres amb accent i els emojis donen més de 8 bits.