Introducció

En aquest tema, aprendrem sobre els sistemes de numeració binari i hexadecimal, que són fonamentals per a la programació en Assembly. Aquests sistemes són utilitzats per representar dades i instruccions a nivell de maquinari.

Sistemes de Numeració

Sistema Binari

El sistema binari és un sistema de numeració en base 2, que utilitza només dos dígits: 0 i 1. Cada dígit en un nombre binari es coneix com a bit (binary digit).

Exemples de Nombres Binaris:

  • 0
  • 1
  • 10 (equivalent a 2 en decimal)
  • 101 (equivalent a 5 en decimal)

Sistema Hexadecimal

El sistema hexadecimal és un sistema de numeració en base 16, que utilitza setze símbols: els dígits del 0 al 9 i les lletres de la A a la F, on A representa 10, B representa 11, i així successivament fins a F, que representa 15.

Exemples de Nombres Hexadecimals:

  • 0x0
  • 0x1
  • 0xA (equivalent a 10 en decimal)
  • 0x1F (equivalent a 31 en decimal)

Conversió entre Sistemes

Binari a Decimal

Per convertir un nombre binari a decimal, multipliquem cada bit pel valor de la seva posició (potència de 2) i sumem els resultats.

Exemple:

1011 (binari) a decimal:

  • \(1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0\)
  • \(1 \times 8 + 0 \times 4 + 1 \times 2 + 1 \times 1\)
  • \(8 + 0 + 2 + 1 = 11\)

Decimal a Binari

Per convertir un nombre decimal a binari, dividim el nombre per 2 i anotem el residu. Repetim el procés amb el quocient fins que el quocient sigui 0. Els residus, llegits de baix a dalt, formen el nombre binari.

Exemple:

Convertir 13 (decimal) a binari:

  • 13 ÷ 2 = 6 residu 1
  • 6 ÷ 2 = 3 residu 0
  • 3 ÷ 2 = 1 residu 1
  • 1 ÷ 2 = 0 residu 1

Llegint els residus de baix a dalt: 1101

Binari a Hexadecimal

Per convertir un nombre binari a hexadecimal, agrupem els bits en grups de quatre, començant des de la dreta. Cada grup es converteix en el seu equivalent hexadecimal.

Exemple:

Convertir 11010110 (binari) a hexadecimal:

  • Grups de quatre: 1101 0110
  • 1101 = D
  • 0110 = 6

Resultat: 0xD6

Hexadecimal a Binari

Per convertir un nombre hexadecimal a binari, convertim cada dígit hexadecimal al seu equivalent binari de quatre bits.

Exemple:

Convertir 0x3F (hexadecimal) a binari:

  • 3 = 0011
  • F = 1111

Resultat: 00111111

Taula de Conversió

Decimal Binari Hexadecimal
0 0000 0x0
1 0001 0x1
2 0010 0x2
3 0011 0x3
4 0100 0x4
5 0101 0x5
6 0110 0x6
7 0111 0x7
8 1000 0x8
9 1001 0x9
10 1010 0xA
11 1011 0xB
12 1100 0xC
13 1101 0xD
14 1110 0xE
15 1111 0xF

Exercicis Pràctics

Exercici 1: Conversió de Binari a Decimal

Converteix els següents nombres binaris a decimal:

  1. 1010
  2. 1111
  3. 1001

Solucions:

  1. 1010 (binari) = 10 (decimal)
  2. 1111 (binari) = 15 (decimal)
  3. 1001 (binari) = 9 (decimal)

Exercici 2: Conversió de Decimal a Binari

Converteix els següents nombres decimals a binari:

  1. 14
  2. 7
  3. 19

Solucions:

  1. 14 (decimal) = 1110 (binari)
  2. 7 (decimal) = 0111 (binari)
  3. 19 (decimal) = 10011 (binari)

Exercici 3: Conversió de Binari a Hexadecimal

Converteix els següents nombres binaris a hexadecimal:

  1. 1100
  2. 101010
  3. 11110000

Solucions:

  1. 1100 (binari) = 0xC (hexadecimal)
  2. 101010 (binari) = 0x2A (hexadecimal)
  3. 11110000 (binari) = 0xF0 (hexadecimal)

Exercici 4: Conversió de Hexadecimal a Binari

Converteix els següents nombres hexadecimals a binari:

  1. 0x9
  2. 0xB3
  3. 0x7F

Solucions:

  1. 0x9 (hexadecimal) = 1001 (binari)
  2. 0xB3 (hexadecimal) = 10110011 (binari)
  3. 0x7F (hexadecimal) = 01111111 (binari)

Conclusió

En aquest tema, hem après sobre els sistemes de numeració binari i hexadecimal, així com les conversions entre aquests sistemes i el sistema decimal. Aquests coneixements són essencials per a la programació en Assembly, ja que ens permeten comprendre i manipular les dades a nivell de maquinari. En el proper tema, explorarem els diferents tipus de dades i les seves mides en Assembly.

© Copyright 2024. Tots els drets reservats