Está en la página 1de 10

En esta base sólo contamos con 2 dígitos: 0 y 1.

Al igual que la base decimal tiene su razón de ser, la


base 2 o binaria tampoco ha surgido debido a un mero convencionalismo, sino que se basa en algo
concreto: Electricidad.

Toda la información que se manipula dentro de un ordenador se hace de acuerdo a señales eléctricas. Es
lo único que entiende el ordenador. Mediante una señal eléctrica alta, se representa el valor 1; mediante
una señal eléctrica baja se representa el 0.

(1) : Tensión eléctrica alta. . (0) : Tensión eléctrica baja.

Todo el trabajo del procesador, buses, etc... se realiza de acuerdo a este sistema binario. Cuando se recibe
una señal eléctrica alta, se interpreta como que ha llegado un dato de valor (1). Cuando la señal es baja,
el dato es un (0). Todo el flujo de datos en el interior del ordenador, y del ordenador con los periféricos, se
realiza mediante estas informaciones eléctricas.

El factor de escala en esta base, son las potencias de 2 que afectan a un dígito dado dependiendo de su
posición en la cadena numérica.

El número 10100101 se puede traducir a base 10 como: 10100101 =


(1*2^7)+(0*2^6)+(1*2^5)+(0*2^4)+(0*2^3)+(1*2^2)+(0*2^1)+(1*2^0).
O lo que es lo mismo: 10100101 (base 2) = 128+0+32+0+0+4+0+1 (base 10) = 165 (base 10)
La base hexadecimal surgió para compactar la información binaria. Se utiliza un dígito hexadecimal para
representar una cadena de 4 dígitos binarios. Un dígito hexadecimal tiene que poder tomar 16 valores
diferentes.
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E y F.

El factor de escala en esta base, son las potencias de 16 que afectan a un dígito dado dependiendo de su
posición en la cadena numérica.

Para obtener la traducción de ese número en base 16 a su valor en base 10, utilizamos las potencias de 16
mencionadas. Por ejemplo el número AF34 se puede traducir a base 10 como:
AF34 (base 16) = (10*16^3)+(15*16^2)+(3*16^1)+(4*16^0) (base 10).
O lo que es lo mismo: AF34 = (10*4096)+(15*256)+(3*16)+4 =
40960+3840+48+4 = 44852

4 dígitos binarios se pueden compactar en un sólo dígito hexadecimal, Por ejemplo: el número
1010000101010101.. El proceso para llevar a cabo este cambio es sencillo: De derecha a izquierda de la
cadena numérica, se van tomando cadenas de 4 dígitos binarios, y se transforman a su correspondiente dígito
hexadecimal.

Tomemos los primeros 4 dígitos binarios: 0101.


0101 (base 2) = (0*8) + (1*4) + (0*2) + (1*1) = 5 (base 16). Siguiendo el proceso con el resto de la cadena,
tenemos que el número resultante en base 16 es A155, que es mucho más fácil de recordar y almacenar (en
cuanto a código fuente se refiere) que el correspondiente en base 2.
Por ello vamos a usar bastante estos sistemas, y de hecho el hexadecimal se va a utilizar
habitualmente al hacer referencia a posiciones de memoria o valores; por ejemplo un registro
de 32 bits se puede representar con un dígito hexadecimal de 8 cifras. La clave reside en que
sabemos que ningún número de 8 cifras hexadecimales ocupa más de 32 bits, lo cual hace
muy compacto este método de representación.

A continuación, algún otro ejemplo de traducción:

0ABCDh -> 1010101111001101b

Usaremos a menudo una h o una b al final del número para destacar que son números
hexadecimales o binarios;

1101111010101101b ->
0001001100110111b ->
En términos matemáticos un valor puede tomar un número arbitrario de bits, pero las
computadoras por el contrario, generalmente trabajan con un número específico de bits, desde
bits sencillos pasando por grupos de cuatro bits (llamados nibbles), grupos de ocho bits (bytes),
grupos de 16 bits (words, ó palabras) y aún más.

• Bits
La más pequeña cantidad de información en una computadora binaria es el bit, éste
solamente es capaz de representar dos valores diferentes.
• Nibbles
Un nibble es una colección de cuatro bits.
• Bytes
El byte es la estructura de datos más importante utilizada por los procesadores 80x86.
Un byte está compuesto de ocho bits y es el elemento de dato más pequeño direccionable
por un procesador 80x86, ésto significa que la cantidad de datos más pequeña a la que
se puede tener acceso en un programa es un valor de ocho bits. Observe que un byte
está compuesto de dos nibbles.
• Words (palabras)
Una palabra es un grupo de 16 bits enumerados de cero hasta quince, contiene dos bytes,
el de bajo orden que está compuesto por los bits 0 al 7, y el de alto orden en los bits 8 al
15. Naturalmente, una palabra puede descomponerse en cuatro nibbles.
SUMA
+ 0 1 010 + 101 =
1+1+1+1 =
0 0 1
001101 + 100101 =
1 1 10 1011011 + 1011010 =
110111011 + 100111011 =
ACARREA 1 10111 + 11011 + 10111
RESTA
- 0 1 101 - 010 =
100101 - 001101 =
0 0 1
1111010 - 1011011 =
1 1+1 0 110101011 - 101101111 =
10000001 + 1111111
ACARREA 1
Con los números binarios tenemos un problema: no sabemos representar números negativos.
Así pues, se han ideado una serie de sistemas que pretenden solucionar este problema, el más
sencillo de los cuales es el signo/magnitud.

En este sistema, la primera cifra del número hará de signo -. Entonces, un byte nos dará el
signo negativo o positivo, haciendo el bit más significativo (el que está más a la izquierda), y
tendremos un rango que irá de -127 a 127 (sin signo iría de 0 a 255), teniendo dos
representaciones para el 0 (00000000 y 100000000). Tomaremos entonces, como signo - el 1.
Así, será tan sencillo como en los siguientes ejemplos:

01101010b ->
10000010b ->
00000010b ->
10000111b ->
100000000b, 0000000b ->

El problema de esta representación, reside en que no se pueden realizar restas con facilidad.
Un sistema mejorado para la representación de números
negativos es el complemento a 1. En ella lo que se hace
básicamente es, para representar el negativo de un número,
el -X, invertir absolutamente todos los bits que lo forman
(excepto el primero, que como en Signo/Magnitud será 1
para el negativo y 0 para el positivo).

Ejemplos de esta representación:

01101010b ->

11111110b ->

11111000b ->
El algoritmo de representación binaria de complemento a 2, consiste en una mejora del
complemento a 1. Se representará el negativo de un número, ese -X, invirtiendo todos los bits
que lo forman excepto el primero que marca signo, y en caso de hacerlo de positivo a
negativo, sumándole 1 (restando 1 en otro caso). El porqué de esta representación es sencillo
y tiene que ver con los motivos que nos llevan a rechazar los dos anteriores como menos
válidos; este es el único sistema en el que si se suman un número y su opuesto se obtiene 0,
lo cual le da gran consistencia aritmética.

En el caso de complemento a 1, si sumásemos 11111110b (-1) y 00000001b (1), el resultado


es 11111111b y no 00000000b (podríamos considerar todo 1s como otra forma del 0, pero
tener dos representaciones del 0 sigue siendo aritméticamente un problema).
Sin embargo, en complemento a 2, si sumamos 11111111b (-1) y 00000001b (1), el resultado
es 00000000b, lo que buscábamos.

Algunos ejemplos de representación:

11111101b ->
11111110b ->
00000011b ->
01111111b ->

También podría gustarte