Bit
Bit es el acrónimo de Binary digit. Un bit es un dígito del sistema de numeración binario.
Mientras que en el sistema de numeración decimal se usan diez dígitos, en el binario se usan sólo dos dígitos, el 0 y
el 1. Un bit o dígito binario puede representar uno de esos dos valores, 0 ó 1. El bit es la unidad mínima de información empleada en informática, con él,
podemos representar dos valores cuales quiera. Basta con asignar uno de esos valores al
estado de "apagado" (0), y el otro al estado de "encendido" (1).
- Combinaciones de bits: Para representar o
codificar información en un dispositivo digital, necesitamos una mayor cantidad de bits. Si usamos dos bits,
tendremos cuatro combinaciones posibles: 0 0 (Los dos están "apagados"), 0 1 (El primero está "encendido" y el segundo "apagado"), 1 0 (El primero está "apagado" y el segundo "encendido") y 1 1 (Los dos están "encendidos").
A través de secuencias de bits, se puede codificar cualquier valor discreto como números, palabras, e imágenes. Con un número n de bits pueden representarse hasta
2
n valores diferentes.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz_KC4LM8xrVxkGMCLlVCw8qYpCurJB3Aunez5vFaCdJnfDVq2kRUAeQIYNNc60IfT3je0To2Hz7XVi2CBmV9XcZ7584aIZY5_65l1AQ971qpFvJSC0eueamaQZ3myEC_9lMmyS87OpkOK/s1600/bombillas.png)
- Valor de posición: En un sistema de numeración posicional, el valor de los dígitos depende del lugar en el que se encuentren. Generalizando, cada vez que nos
movemos una posición hacia la izquierda el dígito vale 10 veces más, y cada vez que nos movemos una posición
hacia la derecha, vale 10 veces menos.
En el sistema binario es similar, excepto que cada vez que un dígito binario se desplaza una posición hacia la
izquierda vale el doble, y cada vez que se mueve hacia la derecha, vale la mitad
Subíndices: Cuando se trabaja con varios sistemas de numeración o cuando no está claro con cual se está trabajando, es típico
usar un subíndice para indicar el sistema de numeración con el que se ha representado un número. El 10 es el
subíndice para los números en el sistema decimal y el 2 para los del binario.
- Bits más y menos significativos: Un conjunto de bits representa un conjunto de elementos ordenados. Se llama bit más
significativo (MSB) al bit que tiene un mayor valor dentro del conjunto, análogamente, se llama bit
menos significativo (LSB) al bit que tiene un menor peso dentro del conjunto.
- Little endian y Big endian: En los computadores cada byte se identifica con su posición en la memoria. Este aspecto es particularmente importante en la
programación en código máquina, ya que algunas máquinas consideran el byte situado en la dirección más baja el
menos significativo (a little endian) mientras que otras consideran que ése es el más
significativo (arquitectura big endian). Para números grandes los bytes que los representan se almacenarían en distinto orden en
cada arquitectura.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYsvW4hyphenhyphenI8KwniynKWSJDRyM9jBNohJ8zZjrbOWswdGj2I9sjFuU-HRMWBrIFNYrQuY6qhYKjnXLcaZ_3RD7FMlgxrsHH4yrQgqz3kSWrblgHnNbjCDb7ZEuTbSl9OcyHJecAWw8VaEbZ6/s200/Little.png) |
Little endian |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZDPsek5dk92TTqMiknw1CSTIdqsusd3S5zSKEqFKajeNqCTBjXFdhhDmtkQ994vGi00YFhFyhBAMZ9RohB0HTrIXFHkIQzPkN_cwFGkYd7uSHoMEtU5VCk9iGYcrTg_U9_6JxMMp3dyrz/s200/big.png) |
Big endian |
- Bit en las películas: En la pelicula Tron un bit que está representado por una forma poliédrica de color blanco que es un compuesto de dodecaedro e icosaedro. Solo puede decir "si" y "no". Cuando un bit dice "sí" cambia brevemente en un octaedro amarillo, y cuando dice que "no" se transforma en una forma de punta roja.
Sistema binario
El sistema binario es un sistema de numeración en el que los números se representan utilizando las cifras cero y uno. Es el que se utiliza en las computadoras, pues trabajan internamente con dos niveles de voltaje, por lo que su sistema de numeración natural es el sistema binario.
- Historia del sistema binario: Pingala presentó la primera descripción que se conoce de un sistema de numeración binario en el siglo tercero antes de nuestra era. Una serie de 8 trigramas y 64 hexagramas y números binarios de 6 bit, eran conocidos en la antigua china en el texto clásico del I Ching.
En 1605 Francis Bacon habló de un sistema por el cual las letras podrían reducirse a secuencias de dígitos binarios, las cuales podrían ser codificadas como variaciones en la fuente de cualquier texto.
En 1854, George Boole publicó un artículo que marcó un antes y un después, detallando un sistema de lógica que terminaría denominándose Álgebra de Boole. Dicho sistema desempeñaría un papel fundamental en el desarrollo del sistema binario actual, particularmente en el desarrollo de circuitos electrónicos.
- Aplicaciones: En 1937, Claude Shannon realizó su tesis doctoral en la cual implementaba el Álgebra de Boole y aritmética binaria utilizando relés y conmutadores por primera vez en la historia. La tesis de Shannon básicamente fundó el diseño práctico de circuitos digitales.
En noviembre de 1937, George Stibitz, construyó una computadora basada en relés a la cual apodó "Modelo K" que utilizaba la suma binaria para realizar los cálculos. El 8 de enero de 1940 se terminó el diseño de una Calculadora de Números Complejos, la cual era capaz de realizar cálculos con números complejos. Fue la primera máquina computadora utilizada de manera remota a través de la línea de teléfono.
- Representación: Un número binario puede ser representado por cualquier secuencia de bits que suelen representar cualquier mecanismo capaz de estar en dos estados mutuamente excluyentes.
De acuerdo con la representación más habitual, números árabes, los números binarios comúnmente son escritos usando los símbolos 0 y 1.
- Conversión entre binario y decimal: Se divide el número del sistema decimal entre 2, cuyo resultado entero se vuelve a dividir entre 2, y así sucesivamente. Ordenados los restos, del último al primero, éste será el número binario que buscamos. Por ejemplo:
- Otra forma de conversión consiste en un método parecido a la factorización en números primos. Este método consiste también en divisiones sucesivas. Dependiendo de si el número es par o impar, colocaremos un cero o un uno en la columna de la derecha. Si es impar, le restaremos uno y seguiremos dividiendo entre dos, hasta llegar a 1. Después tomamos el último resultado de la columna izquierda y todos los de la columna de la derecha y ordenamos los dígitos de abajo a arriba. Ejemplo:
- Existe un último método denominado de distribución. Consiste en distribuir los unos necesarios entre las potencias sucesivas de 2 de modo que su suma resulte ser el número decimal a convertir. Ejemplo:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_sNd7S3F9QKHqjqqxP37mCT6E30yo_0sMZi03ixZ1ZZL7TvVAIfP98oNxyAydgl_uZMpRpXGxhgvqDRuw05E7juOEBvEY-2qjqBX_-Zbtl_JgkOoHrtXQ6ShpZ17me9D4qcH7chtRb_Yw/s400/128+en+binario.png)
- Se transforma la parte entera a binario. (Si la parte entera es 0 en binario será 0, si la parte entera es 1 en binario será 1, si la parte entera es 5 en binario será 101 y así sucesivamente) y se sigue con la parte fraccionaria, multiplicando cada número por 2. Si el resultado obtenido es mayor o igual a 1 se anota como un uno binario. Si es menor que 1, se anota como un 0 binario.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBVuF_69RlVb_g_yb9kVJ-60F2l-INfcmzWQRvmhB6kPepoprir0RZuYZJEM1nxO0RN1LnATUF1MG14qQUdW4H6n0QuaM6fQW48vanQgVvJPuxx19NcdoLwQVE6VCooBIFxD1ZVa-HCb_9/s320/de+decimal+a+binario.png)
- Binario a decimal: Iniciar por el lado derecho del número en binario, cada cifra multiplicándola por 2 elevado a la potencia consecutiva. Después de realizar cada una de las multiplicaciones, sume todas y el número resultante será el equivalente al sistema decimal.
Cuando existe una parte fraccionaria binaria: Iniciar por el lado izquierdo. Cada número multiplíquelo por 2 elevado a la potencia consecutiva a la inversa (comenzando por la potencia -1, 2-1). Después de realizar cada una de las multiplicaciones, sume todas y el número resultante será el equivalente al sistema decimal.
- Operaciones con números binarios:
- Suma: Las posibles combinaciones al sumar dos bits son 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 y 1 + 1 = 10.
- Resta: El algoritmo de la resta en sistema binario es el mismo que en el sistema decimal. Pero conviene repasar la operación de restar en decimal para comprender la operación binaria, que es más sencilla. Las restas básicas son evidentes: 0 - 0 = 0, 1 - 0 = 1, 1 - 1 = 0 y 0 - 1 = 1 (se transforma en 10 - 1 = 1) (en sistema decimal equivale a 2 - 1 = 1). La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente.
- Producto: El algoritmo del producto en binario es igual que en números decimales aunque se lleva a cabo con más sencillez, ya que el 0 multiplicado por cualquier número da 0, y el 1 es el elemento neutro del producto.
- División: La división en binario es similar a la decimal; la única diferencia es que a la hora de hacer las restas, dentro de la división, éstas deben ser realizadas en binario.
- Conversión entre binario y octal: Para realizar la conversión de binario a octal hay que agrupar la cantidad binaria en grupos de 3 en 3 iniciando por el lado derecho. Si al terminar de agrupar no completa 3 dígitos, entonces agregamos ceros a la izquierda. Posteriormente tienes que ver el valor que corresponde de acuerdo a la tabla (colocada debajo de la explicación) y agrupar la cantidad correspondiente en octal de izquierda a derecha.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4l1KgpbsehOl_fp29xNB0qzEW_GBKOtjI5QmUS15c8gcmUHC2jKLRFZSmpatvsh06hP8MvfsHCaDLXAd-ocFgM_z42f6H0OIxSOKil0VIdefu9YHes9NjSQEqv7sAAr0XzzgqDO9NLzYp/s400/octal.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrL5ojRiVYvcm2foslYip6uArVawfUUiuANUGlghw1ua6Mc0NLRbzjfxHbnkdaH79qcDXT06uzTfTxEU2mu63hp-cPu-zu5WTeh67oITOXMebDU3fDLDeDr7OPvlR7fHAYhfJ813AhXyvo/s1600/ejemplo+octal.png) |
Ejemplo |
- Octal a binario: Cada dígito octal se convierte en su binario equivalente de 3 bits y se juntan en el mismo orden.
- Binario a hexadecimal: Agrupar la cantidad binaria en grupos de 4 en 4 iniciando por el lado derecho. Si al terminar de agrupar no completa 4 dígitos, entonces agregue ceros a la izquierda. Posteriormente vea el valor que corresponde de acuerdo a la tabla (colocada debajo de la explicación) y agrupar de derecha a izquierda.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik7Z4m7rHDgkQZPnt-nLqOKucdvn8OKZfLct6E-ot7HFEE00U9rzo2OQ8CfbqlcFPv_53V_oknBSLnivp2QwuYzf_t_55DJq3TmpkHRz3fCJlxHtUl5fdU6s4gZll_wMUgV5cJy3IV3Mjr/s1600/ejemplillo.png) |
Ejemplo |
- Hexadecimal a binario: Sólo que se remplaza por el equivalente de 4 bits, de forma similar a como se hace de octal a binario.
- Tabla de conversión entre decimal, binario, hexadecimal, octal, BCD, Exceso 3 y Código Gray o Reflejado
Byte
Byte es una palabra inglesa que la Real Academia Española ha aceptado como equivalente a octeto (es decir a ocho bits). Para fines correctos, un byte debe ser considerado como una secuencia de bits contiguos, cuyo tamaño depende del código de información o código de caracteres en que sea definido. La unidad byte no tiene símbolo establecido internacionalmente.
- Escala: En arquitectura de ordenadores, 8 bits es un adjetivo usado para describir enteros, direcciones de memoria u otras unidades de datos que comprenden hasta 8 bits de ancho, o para referirse a una arquitectura de CPU y ALU basadas en registros, bus de direcciones o bus de datos de ese ancho.
- Significado: Secuencia contigua de un número de bits fijo. La utilización de un byte de 8 bit ha llegado a ser casi ubicua.
- Historia: El término byte fue acuñado por Waner Buchholz en 1957 durante las primeras fases de diseño del IBM 7030 Stretch. Originalmente fue definido en instrucciones de 4 bits, permitiendo desde uno hasta dieciséis bits en un byte. Los equipos típicos de E/S de este periodo utilizaban unidades de seis bits. Un tamaño fijo de byte de 8 bits se adoptó posteriormente y se promulgó como un estándar por el IBM S/360. El término "byte" viene de "bite" como la cantidad más pequeña de datos que un ordenador podía "morder" a la vez. Sin embargo, en los años 1960, en el Departamento de Educación de IBM del Reino Unido se enseñaba que un bit era un Binary digIT y un byte era un BinarY TuplE.
Los primeros microprocesadores, como el Intel 8008 podían realizar un número pequeño de operaciones en 4 bits, como la instrucción DAA (ajuste decimal) y el flag "half carry" que eran utilizados para implementar rutinas de aritmética decimal. Estas cantidades de cuatro bits se llamaron "nibbles" en honor al equivalente de 8 bits "bytes".
- Palabras alternativas: Los bytes de 8 bits a menudo se llaman octetos en contextos formales como los estándares industriales, así como en Redes Informáticas y Telecomunicaciones para evitar confusiones sobre el número de bits implicados. Sin embargo, los bytes de 8 bits se integran firmemente en estándares comunes como Ethernet y HTML.
- Abreviaturas/Símbolos: El IEEE 1541 y el MIXF especifican "B" como el símbolo para el byte, mientras que el IEC 60027 permanece en silencio en este tema. Además, B significa bel, una unidad logarítmica utilizada en el mismo campo.
Los países francófonos utilizan una o minúscula para "octeto". Es posible referirse a estas unidades indistintamente como ko, Mo, o kB, MB. Esto no se permite en el SI por el riesgo de confusión con el cero, aunque esa es la forma empleada en la versión francesa del estándar ISO/IEC 80000-13:2008.
ASCII
El código ASCII (Código Estadounidense Estándar para el Intercambio de Información), es un
código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares como una evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.
ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 33 caracteres no imprimibles, de los cuales la mayoría son caracteres de control obsoletos que tienen efecto sobre cómo se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración.
- Vista general: Las computadoras solamente entienden números. El código ASCII es una representación numérica de un carácter.
ASCII es un código de siete bits, lo que significa que usa cadenas de bits representables con siete dígitos binarios (que van de 0 a 127 en base decimal) para representar información de caracteres. En el momento en el que se introdujo el código ASCII muchos ordenadores trabajaban con grupos de ocho bits como la unidad mínima de información; donde el octavo bit se usaba habitualmente como bit de paridad con funciones de control de errores en líneas de comunicación u otras funciones específicas del dispositivo. Las máquinas que no usaban la comprobación de paridad asignaban al octavo bit el valor cero en la mayoría de los casos. El código ASCII define una relación entre caracteres específicos y secuencias de bits; además de reservar unos cuantos códigos de control para el procesador de textos, y no define ningún mecanismo para describir la estructura o la apariencia del texto en un documento.
- Historia: El código ASCII se desarrolló en el ámbito de la telegrafía y se usó por primera vez comercialmente como un código de teleimpresión impulsado por los servicios de datos de Bell. Bell había planeado usar un código de seis bits, derivado de Fieldata, que añadía puntuación y letras minúsculas al más antiguo código de teleimpresión Baudot, pero se les convenció para que se unieran al subcomité de la Agencia de Estándares Estadounidense (ASA), que habían empezado a desarrollar el código ASCII. Baudot ayudó en la automatización del envío y recepción de mensajes telegráficos, y tomó muchas características del código Morse; sin embargo, usó códigos de longitud constante. Comparado con los primeros códigos telegráficos, el código propuesto por Bell y ASA resultó en una reorganización más conveniente para ordenar listas y añadió características como la 'secuencia de escape'.
ASCII fue actualizado en consecuencia y publicado como ANSI X3.4-1968, ANSI X3.4-1977, y finalmente ANSI X3.4-1986.
El código ASCII también está incluido en su probable relevo, Unicode, constituyendo los primeros 128 caracteres (o los 'más bajos').
- Los caracteres de control ASCII: El código ASCII reserva los primeros 32 códigos para caracteres de control, códigos no pensados originalmente para representar información imprimible, sino para controlar dispositivos que usaban ASCII.
Muchos de los caracteres de control ASCII servían para marcar paquetes de datos, o para controlar protocolos de transmisión de datos. ESCape y SUBstitute permitían a un protocolo de comunicaciones, por ejemplo, marcar datos binarios para que contuviesen códigos con el mismo código que el carácter de protocolo, y que el receptor pudiese interpretarlos como datos en lugar de como caracteres propios del protocolo.
Dos de los caracteres de control de dispositivos, comúnmente llamados XON y XOFF ejercían funciones de caracteres de control de flujo para controlar el flujo hacia un dispositivo lento desde un dispositivo rápido, de forma que los datos no saturasen la capacidad de recepción del dispositivo lento y se perdiesen.
Actualmente los usuarios de ASCII usan menos los caracteres de control. Los lenguajes modernos de etiquetas, los protocolos modernos de comunicación, el paso de dispositivos basados en texto a basados en gráficos, el declive de las teleimpresoras, las tarjetas perforadas y los papeles continuos han dejado obsoleta la mayoría de caracteres de control.
- Caracteres imprimibles ASCII: Los códigos del 33 al 126 se conocen como caracteres imprimibles, y representan letras, dígitos, signos de puntuación y varios símbolos.
- Rasgos estructurales: Los dígitos del 0 al 9 se representan con sus valores prefijados con el valor 0011 en binario y las cadenas de bits de las letras minúsculas y mayúsculas sólo difieren en un bit.
- Otros nombres para ASCII: La RFC 1345 (publicada en junio de 1992) y el registro IANA de códigos de caracteres, reconocen los siguientes nombres alternativos para ASCII para su uso en Internet: ANSI_X3.4-1968 (nombre canónico), ANSI_X3.4-1986, ASCII, US-ASCII (nombre MIME recomendado), us, ISO646-US, etc.
- Variantes de ASCII: A medida que la tecnología informática se difundió a lo largo del mundo, se desarrollaron diferentes estándares y las empresas desarrollaron muchas variaciones del código ASCII para facilitar la escritura de lenguas diferentes al inglés que usaran alfabetos latinos. Se pueden encontrar algunas de esas variaciones clasificadas como "ASCII Extendido", aunque en ocasiones el término se aplica erróneamente para cubrir todas las variantes, incluso las que no preservan el conjunto de códigos de caracteres original ASCII de siete bits.
La tecnología mejoró y aportó medios para representar la información codificada en el octavo bit de cada byte, liberando este bit, lo que añadió otros 128 códigos de carácter adicionales que quedaron disponibles para nuevas asignaciones. Algunos sistemas operativos como DOS, podían trabajar con esas páginas de código, y los fabricantes de ordenadores personales incluyeron soporte para dichas páginas en su hardware.
Unicode y Conjunto de Caracteres Universal (UCS) definen un conjunto de caracteres mucho
mayor, y sus diferentes formas de codificación han empezado a reemplazar ISO 8859 y ASCII rápidamente en
muchos entornos. Mientras que ASCII básicamente usa códigos de 7-bits, Unicode y UCS usan "code points" o
apuntadores relativamente abstractos: números positivos que asignan secuencias de 8 o más bits
a caracteres. Para permitir la compatibilidad, Unicode y UCS asignan los primeros 128 apuntadores a los mismos
caracteres que el código ASCII, de esta forma se puede pensar en ASCII como un subconjunto muy pequeño de
Unicode y UCS. La popular codificación UTF-8 recomienda el uso de uno a cuatro valores de 8 bits para cada
apuntador, donde los primeros 128 valores apuntan a los mismos caracteres que ASCII. Otras codificaciones de
caracteres como UTF-16 se parece a ASCII en cómo representan los primeros 128 caracteres de Unicode, pero
tienden a usar 16 a 32 bits por carácter, así que requieren de una conversión adecuada para que haya compatibilidad
entre ambos códigos de carácter.
Es muy normal que el código ASCII sea embebido en otros sistemas de codificación más sofisticados y por ello el
usuario común suele confundirse, es por esto que debe tenerse claro cual es papel del código ASCII en la tabla o
mapa de caracteres de un ordenador.
- Arte ASCII: El código de caracteres ASCII es el soporte de una disciplina artística minoritaria, el arte ASCII, que consiste en la
composición imágenes mediante caracteres imprimibles ASCII. El efecto resultante ha sido comparado con el
puntillismo, pues las imágenes producidas con esta técnica generalmente se aprecian con más detalle al ser vistas a
distancia.