Rodolfo Pilas
bloger podcaster devops sysadmin profesor father
9240
Todos sabemos leer este número.
Pero:
¿por qué significa eso y no otra cosa?
Representamos números usando:
Cada dígito vale algo distinto según el lugar en el que aparece.
0 a 910Cada posición representa una potencia de 10.
... 10^3 10^2 10^1 10^0
9240 =
9 x 10^3
+ 2 x 10^2
+ 4 x 10^1
+ 0 x 10^0
480.52 =
4 x 10^2
+ 8 x 10^1
+ 0 x 10^0
+ 5 x 10^-1
+ 2 x 10^-2
Un número es:
suma de (dígito x potencia de la base)
Todo sistema de numeración tiene:
B0 hasta B-1B¿Qué cambia si cambiamos la base?
En binario:
20 y 1En binario:
20 y 1Todo sistema de numeración tiene:
B0 hasta B-1BCada posición representa una potencia de 2.
... 2^3 2^2 2^1 2^0
101₂ =
1 x 2^2
+ 0 x 2^1
+ 1 x 2^0
= 5
2 = 10₂
5 = 101₂
9 = 1001₂
Porque muchos sistemas electrónicos trabajan naturalmente con dos estados:
El binario no es un sistema raro.
Es el mismo concepto que decimal, pero en base 2.
Para convertir un entero a binario:
20Tomar los restos del último al primero
12 / 2 = 6 resto 0
6 / 2 = 3 resto 0
3 / 2 = 1 resto 1
1 / 2 = 0 resto 1
Resultado: 1100₂
Los restos se toman del último al primero
o de abajo hacia arriba
Para pasar de binario a decimal:
21101₂ =
1 x 2^3
+ 1 x 2^2
+ 0 x 2^1
+ 1 x 2^0
= 13
El binario funciona bien.
Pero tiene una dificultad:
los números se vuelven largos
Ejemplo: 110010101011
160 a 9 y A a FEquivalencias:
A=10 B=11 C=12 D=13 E=14 F=15
Todo sistema de numeración tiene:
B0 hasta B-1B2^4 = 16
Entonces:
1 dígito hexadecimal = 4 bits
Binario:
1100 1010
Hexadecimal:
C A
Proceso:
Ejemplo:
10101111₂ -> 1010 1111 -> AF₁₆
Cada dígito hexadecimal se transforma en 4 bits.
Ejemplo:
2 = 0010
5 = 0101
9 = 1001
A = 1010
F = 1111
Ejemplos:
#FF00AAHexadecimal no reemplaza al binario.
Lo simplifica para humanos.
Hasta ahora representamos números.
¿Cómo representa una computadora texto?
ASCII asigna un número a cada carácter.
Ejemplos:
'A' = 65'@' = 64'd' = 100'A' =
65 en decimal41 en hexadecimal1000001 en binarioTodo texto en una computadora es:
una secuencia de números representados en binario
Unidad mínima de información.
Un bit puede valer:
011 byte = 8 bits
En este contexto:
un byte permite representar un carácter simple
"Hola"
Tiene 4 caracteres.
Entonces:
"Hola" -> 4 bytes
1 KB = 1024 bytes1 MB = 1024 KB1 GB = 1024 MBSi una computadora representa números en binario:
¿también puede operar con ellos?
El sistema binario también permite operar.
La lógica es la misma que en decimal,
pero en base 2.
Reglas básicas:
0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 101 + 1 = 101 + 1 + 1 = 11En ambos casos hay acarreo.
1011
+ 0110
------
10001
Las computadoras usan una cantidad fija de bits.
Ejemplo:
8 bits = 1 byte
¿Qué pasa si el resultado es demasiado grande para la cantidad de bits disponible?
Ocurre un desbordamiento:
overflow
Si solo tenemos 4 bits:
1111 + 1 -> 0000
Hay overflow.
La computadora no "se da cuenta" del error.
Simplemente pierde información que no entra en la cantidad de bits disponible.
¿Cómo representamos números negativos?
En binario no existe un símbolo especial - dentro del dato.
Signo-magnitud:
Problema:
complica las operaciones
Consiste en invertir todos los bits.
Ejemplo:
0001 -> 1110
+0 y -00000 y 1111Proceso:
10001 -> 1110 -> 1111
Primero se invierten los bits.
Luego se suma 1.
El complemento a 2 permite:
usar la misma suma para positivos y negativos
Para restar:
se suma el complemento a 2
la computadora no resta directamente; transforma la resta en una suma del negativo, y ese negativo se construye con complemento a 2
la computadora no resta directamente; transforma la resta en una suma del negativo, y ese negativo se construye con complemento a 2
7 - 3 -> 7 + (-3)
7 = 0111
3 = 0011
-3 = 1100 + 1 = 1101
0111 + 1101 = 10100 -> 0100 = 4
Una computadora no "ve" números, letras o imágenes como nosotros.
Lo que maneja son:
bits organizados, interpretados y operados según reglas
By Rodolfo Pilas