# Sistemas numéricos (binario, hexadecimal, etc) En matemáticas en occidente utilizamos que sistema decimal, o base 10. La idea es que tenemos 10 dígitos, del 0 al 9. Cuando nos acabamos los 10 dígitos, ponemos el que representa la unidad en otra cifra y el que representa el 0 en la primera, y seguimos contando. Así sucesivamente. De esta forma, cualquier número que escribamos mayor que 9, será realmente una suma de una multiplicación de potencias. $$365 = 3·10^2 + 6·10^1 + 5·10^0$$ Para indicar que un número está en una determinada base se utiliza el subíndice al final del mismo. $$1000_{10}$$ Estas abreviaturas también se ven en texto para no confundir con los números. Las más habituale son "bin" para binario, "hex" para hexadecimal y "dec" para decimal. Otras bases numéricas utilizan este mismo principio pero con diferente número de dígitos * Binario: 2 dígitos (0 y 1) $$110001110_2 = 1· 2^9 + 1· 2^8 +0· 2^7 +0· 2^6 +0· 2^5 +1· 2^4 +1· 2^3 + 1· 2^2 +1· 2^1 +0· 2^0$$ * Hexadecimal: 16 dígitos (0-9 y A-F) $$B04A_{16} = 11· 16^3 +0· 16^2 +4· 16^1 +10· 16^0$$ * Octal: 8 dígitos (0-7) $$134_8 = 1 · 8^2 + 3 · 8^1 + 4 · 8^0$$ ## Binario Características * Sistemas digitales aceptan bien el binario. * Las operaciones aritméticas son _largas_ pero sencillas. * Los números son considerablemente más largos que en decimal. Cuando llegamos al $1000_2$ estamos llegando al $8_{10}$, esto hace que los números en binario se sientan mucho más largos. * Al no estar acostumbrados, es difícil operar con ellos. ## Octal * El paso de binario a octal es muy rápido y viceversa dado que cada cifra de octal se corresponde _exactamente_ a 3 cifras en binario. * No es muy extendido debido a que la organización de los bits y bytes no es exacta en el campo de la informática. Para representar un byte necesitamos 3 dígitos en octal. ## Hexadecimal * El paso de binario a viceversa es muy rápido y viceversa dado que cada cifra de hexadecimal se corresponde _exactamente_ a 4 cifras en binario. * Su uso es bastante extendido dado que permite resumir un byte en 2 caracteres hexadecimales. Representación de un archivo en código máquina: ![imagen](https://hackmd.io/_uploads/S1Lp9RE-A.png) ## Bits, bytes y derivados 1 bit es una unidad de información que puede tener un valor de 0 ó 1. 2 posibles valores 1 byte (/bait/) son 8 bits. Los valores que podemos tener son $2^8$ posibilidades. 1 KByte = $2^{10}$ Bytes = 1024 Bytes 1 MByte = $2^{20}$ Bytes = $2^{10}$ KBytes Así sucesivamente con GByte y TByte