Bit
Es el acrónimo de Binary digit
una memoria binaria tiene una capacidad efectiva de representación de un bit.
1.1 Combinaciones de bits
Con un bit podemos representar solamente dos valores o dos diferentes estados, que suelen representarse como 0,
1
• 0 0 - Los dos están “apagados”
• 0 1 - El primero está “apagado” y el segundo “encendido”
• 1 0 - El primero está “encendido” y el segundo “apagado”
• 1 1 - Los dos están “encendidos”.
Con estas cuatro combinaciones podemos representar hasta cuatro valores o estados diferentes, como por ejemplo,
los colores azul, verde, rojo, y magenta.
1.2 Valor de posición.
En cualquier sistema de numeración posicional, el valor de los dígitos depende de la posición en que se encuentren.
En el sistema decimal, por ejemplo, el dígito 5 puede valer 5 si está en la posición de las unidades, pero vale 50
si está en la posición de las decenas, y 500 si está en la posición de las centenas.
1.3. BITS MÁS Y MENOS SIGNIFICATIVO
expresado en números | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 | ← Valor del bit de acuerdo a su posición +-----+-----+-----+-----
+-----+ expresado en forma de potencias de 2 .
Abajo vemos representado el número 19.
16 + 2 + 1 = 19.
También se pueden representar valores fraccionarios. Los números reales se pueden representar con formato de coma
fija o de coma flotante.
Abajo vemos el número 5,25 representado en una forma binaria de coma fija.
4 + 1 + 0,25 = 5,25
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 sistema binario.
• 1910 = 100112
• 5,2510 = 101,012
1.4 Little endian y Big endian
Little endian y big endian se refieren al orden que las máquinas asignan a los bytes que representan números o valores
numéricos. Una máquina little endian asigna los bytes menos significativos en el extremo más bajo de la memoria,
mientras que una máquina big endian asigna los bytes menos significativos en el extremo más alto
1.5 Arquitecturas de 4, 8, 16, 32 y 64 bits
Cuando se habla de CPUs o microprocesadores de 4, 8, 16, 32, 64 bits, se refiere al tamaño, en número de bits,
que tienen los registros internos del procesador y también a la capacidad de procesamiento de la Unidad aritmético
lógica (ALU). Un microprocesador de 4 bits tiene registros de 4 bits y la ALU hace operaciones con los datos en esos
registros de 4 bits, mientras que un procesador de 8 bits tiene registros y procesa los datos en grupos de 8 bits.
1.6 Bit en las películas
En la película Tron, un bit está representado por una forma poliédrica de color blanco que es un compuesto de dodecaedro
e icosaedro. Solo puede decir “sí" (encendido) y “no” (apagado). Cuando el bit dice “sí" cambia brevemente
en un octaedro amarillo, y cuando dice que “no” se transforma en una forma de punta roja. Si se alarma repite la
palabra varias veces, por ejemplo: "¡No no no no no no!".
Byte
Es la unidad de información de base utilizada en computación y en telecomunicaciones,
y que resulta equivalente a un conjunto ordenado de bit.
2.1 Visión general
Se usa como unidad de información digital en combinación con los prefijos del SI o los prefijos binarios
2.1.1 Definición
como la cantidad más pequeña de datos que un ordenador podía “morder”
a la vez. El cambio de letra no solo redujo la posibilidad de confundirlo con bit, sino que también era consistente
con la afición de los primeros científicos en computación en crear palabras y cambiar letras.
2.1.2 Comparativa
De una forma aproximada, las equivalencias entre bytes y objetos reales son:
2.2 Historia
2.2.1 Werner Buchholz
El término byte fue acuñado por Werner 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, pero tras la necesidad de agregar letras minúsculas, así como
una mayor cantidad de símbolos y signos de puntuación, se tuvieron que idear otros modelos con mayor cantidad
de 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.
2.3 Visión detallada
2.3.1 Controversias
Originalmente el byte fue elegido para ser un submúltiplo del tamaño de palabra de un ordenador, desde cinco
a doce bits. La popularidad de la arquitectura IBM S/360 que empezó en los años 1960 y la explosión de las
microcomputadoras basadas en microprocesadores de 8 bits en los años 1980 ha hecho obsoleta la utilización de
otra cantidad que no sean 8 bits
Sin embargo, en la historia otros ordenadores o computadoras han tenido bytes cuyo valor no era de 8 bits, por
ejemplo:
• La serie CDC 6000
• El PDP-10
• Los ordenadores del UNIVAC 1100/2200 .
2.3.2 Múltiplos del byte
Los prefijos utilizados para los múltiplos del byte normalmente son los mismos que los prefijos del SI, también se
utilizan los prefijos binarios, pero existen diferencias entre ellos, ya que según el tipo de prefijo utilizado los bytes
resultantes tienen valores diferentes.
Múltiplos utilizando los prefijos del Sistema Internacional
Múltiplos utilizando los prefijos ISO/IEC 80000-13. Actualmente los prefijos binarios al igual que el byte forman parte de la norma ISO/IEC 80000−13 Los primeros prefijos desde kibi a exbi fueron definidos por la Comisión Electrotécnica Internacional (IEC) en diciembre
de 1998, e incluidas en el IEC 60027-2 (Desde febrero del año 1999), posteriormente en el año 2005 se
incluyeron zebi y yobi.
Oficialmente, el padrón IEC especificaba que los prefijos del SI fueran usados solamente para múltiplos en base 10
(Sistema decimal) y nunca base 2 (Sistema binario).
2.3.3 Otras definiciones
La palabra byte también tiene otras definiciones:
• Una secuencia contigua de bits en una computadora binaria que comprende el sub-campo direccionable más
pequeño del tamaño de palabra natural de la computadora.
3.4 Otras unidades con el mismo símbolo
Byte comparte símbolo (B) con:
• Boro, un elemento químico de la tabla periódica.
• Belio, una unidad logarítmica utilizada en acústica, electricidad, telecomunicaciones y otras especialidades, no
se utiliza por ser demasiado grande en la práctica, y por eso se utiliza el decibelio.
2.4 Unidades relacionadas
2.4.1 Información fraccional y Nibbles
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”.
A la mitad de un byte de ocho bits se llama nibble o un dígito hexadecimal. El nibble a menudo se llama semiocteto
en redes o telecomunicaciones y también por algunas organizaciones de estandarización. Además, una cantidad de 2
bits se llama crumb, aunque raramente se utiliza.
La información fraccional normalmente se mide en bits, Nibbles, nats o bans, donde las últimas dos se utilizan especialmente
en el contexto de la teoría de la información y no se utilizan en otros campos de la computación e
investigación.
Sistema binario
El sistema binario, llamado también sistema diádico en ciencias de la computación, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). Es uno de los que se utilizan en las computadoras, debido a que estas trabajan internamente con dos niveles de voltaje, por lo cual su sistema de numeración natural es el sistema binario.
3.1 Historia del sistema binario
El antiguo matemático indio Pingala presentó la primera descripción que se conoce de un sistema de numeración binario en el siglo tercero antes de nuestra era, lo cual coincidió con su descubrimiento del concepto del número cero.
Una serie completa de 8 trigramas y 64 hexagramas (análogos a 3 bits) y números binarios de 6 bits eran conocidos en la antigua China en el texto clásico del I Ching. Series similares de combinaciones binarias también han sido utilizadas en sistemas de adivinación tradicionales africanos, como el Ifá, así como en la geomancia medieval occidental.
Un arreglo binario ordenado de los hexagramas del I Ching, representando la secuencia decimal de 0 a 63, y un método para generar el mismo fue desarrollado por el erudito y filósofo Chino Adgart en el siglo XI.
En 1605 Francis Bacon habló de un sistema por el cual las letras del alfabeto podrían reducirse a secuencias de dígitos binarios, las cuales podrían ser codificadas como variaciones apenas visibles en la fuente de cualquier texto arbitrario.
El sistema binario moderno fue documentado en su totalidad por Leibniz, en el siglo XVII, en su artículo "Explication
de l'Arithmétique Binaire". En él se mencionan los símbolos binarios usados por matemáticos chinos. Leibniz utilizó
el 0 y el 1, al igual que el sistema de numeración binario actual.
En 1854, el matemático británico 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.
3.1.1 Aplicaciones
En 1937, Claude Shannon realizó su tesis doctoral en el MIT, en la cual implementaba el Álgebra de Boole y aritmética binaria utilizando relés y conmutadores por primera vez en la historia.
En noviembre de 1937, George Stibitz, trabajando por aquel entonces en los Laboratorios Bell, construyó una computadora basada en relés( llamado Modelo K” ) que utilizaba la suma binaria para realizar los cálculos. Los Laboratorios Bell autorizaron un completo programa de investigación
a finales de 1938, con Stibitz al mando.
El 8 de enero de 1940 terminaron el diseño de una “Calculadora de Números Complejos”, la cual era capaz de realizar cálculos con números complejos.
3.2 Representación
Un número binario puede ser representado por cualquier secuencia de bits (dígitos binarios), que suelen representar cualquier mecanismo capaz de usar dos estados mutuamente excluyentes. Las siguientes secuencias de símbolos podrían ser interpretadas como el mismo valor numérico binario:
- 100101 binario (declaración explícita de formato)
- 100101b (un sufijo que indica formato binario)
- 100101B (un sufijo que indica formato binario)
- 100101 (un prefijo que indica formato binario)
- 1001012 (un subíndice que indica base 2 (binaria) notación)
- 100101 (un prefijo que indica formato binario)
- 0100101 (un prefijo que indica formato binario, común en lenguajes de programación)
3.3 Conversión entre binario y decimal
3.3.1 Decimal a binario
Se divide el número del sistema decimal entre 2, cuyo resultado entero se vuelve a dividir entre 2, y así sucesivamente hasta que el dividendo sea menor que el divisor, 2. Es decir, cuando el número a dividir sea 1 finaliza la división.
A continuación se ordenan los restos empezando desde el último al primero, simplemente se colocan en orden inverso a como aparecen en la división, se les da la vuelta. Este será el número binario que buscamos.
Otra forma de conversión consiste en un método parecido a la factorización en números primos. Es relativamente fácil dividir cualquier número entre 2. 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 solo nos queda tomar el último resultado de la columna izquierda y todos los de la columna de la derecha y ordenar los dígitos de abajo a arriba.
3.3.2 Decimal (con decimales) a binario
Para transformar un número del sistema decimal al sistema binario:
- 1. 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).
- 2. Se sigue con la parte fraccionaria, multiplicando cada número por 2. Si el resultado obtenido es mayor o igual a1 se anota como un uno (1) binario. Si es menor que 1 se anota como un 0 binario. (Por ejemplo, al multiplicar 0.6 por 2 obtenemos como resultado 1.2 lo cual indica que nuestro resultado es un uno (1) en binario, solo se toma la parte decimal del resultado).
- 3. Después de realizar cada multiplicación, se colocan los números obtenidos en el orden de su obtención.
- 4. Algunos números se transforman en dígitos periódicos, por ejemplo: el 0.1.
3.3.3 Binario a decimal
Para realizar la conversión de binario a decimal, realice lo siguiente:
- 1. Inicie por el lado derecho del número en binario, cada cifra multiplíquela por 2 elevado a la potencia consecutiva (comenzando por la potencia 0, 20).
- 2. Después de realizar cada una de las multiplicaciones, sume todas y el número resultante será el equivalente al sistema decimal.
3.3.4 Binario a decimal (con parte fraccionaria binaria)
- 1. Inicie por el lado izquierdo (la primera cifra a la derecha de la coma), cada número multiplíquelo por 2 elevado a la potencia consecutiva a la inversa (comenzando por la potencia 1, 21).
- 2.Después de realizar cada una de las multiplicaciones, sume todas y el número resultante será el equivalente al sistema decimal.
3.4 Operaciones con números binarios
3.4.1 Adición de números binarios
Las posibles combinaciones al sumar dos bits son:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
Note que al sumar 1 + 1 es 102, es decir, llevamos 1 a la siguiente posición de la izquierda (acarreo). Esto es equivalente en el sistema decimal a sumar 9 + 1, que da 10: cero en la posición que estamos sumando y un 1 de acarreo a la siguiente posición.
3.4.2 Sustracción de números binarios
El algoritmo de la resta en sistema binario es el mismo que en el sistema decimal. Pero conviene repasar la operaciónde restar en decimal para comprender la operación binaria, que es más sencilla. Los términos que intervienen en la resta se llaman minuendo, sustraendo y diferencia.
Las restas básicas 0 - 0, 1 - 0 y 1 - 1 son evidentes:
- 0 - 0 = 0
- 1 - 0 = 1
- 1 - 1 = 0
- 0 - 1 = 1 (se transforma en 10 - 1 = 1) (en sistema decimal equivale a 2 - 1 = 1)
3.4.3 Producto de números binarios
La tabla de multiplicar para números binarios es la siguiente:
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.
3.5 Conversión entre sistema binario y octal
3.5.1 Sistema binario a octal
Debido a que el sistema octal tiene como base 8, que es la tercera potencia de 2, y que dos es la base del sistema binario, es posible establecer un método directo para convertir de la base dos a la base ocho, sin tener que convertir de binario a decimal y luego de decimal a octal. Este método se describe a continuación:
Para realizar la conversión de binario a octal, realice lo siguiente:
- Agrupe la cantidad binaria en grupos de 3 en 3 iniciando por el lado derecho. Si al terminar de agrupar no completa3 dígitos, entonces agregue ceros a la izquierda.
- Posteriormente vea el valor que corresponde de acuerdo a la tabla:
- La cantidad correspondiente en octal se agrupa de izquierda a derecha.
ASCII
El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bitde paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1, que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.
4.1 Vista general
Las computadoras solamente entienden números. El código ASCII es una representación numérica de un carácter como ‘a’ o ‘@’.
Como otros códigos de formato de representación de caracteres, el ASCII es un método para una correspondencia entre cadenas de bits y una serie de símbolos (alfanuméricos y otros), permitiendo de esta forma la comunicación
entre dispositivos digitales así como su procesado y almacenamiento. El código de caracteres ASCII o una
extensión compatible (ver más abajo) se usa casi en todas las computadoras, especialmente con computadoras
personales y estaciones de trabajo. El nombre más apropiado para este código de caracteres es “US-ASCII
4.2 Los caracteres de control ASCII
El código ASCII reserva los primeros 32 códigos (numerados del 0 al 31 en decimal) para caracteres de control:
códigos no pensados originalmente para representar información imprimible, sino para controlar dispositivos que usaban ASCII. , que hace que una impresora avance el papel, y el carácter 27 representa la tecla “escape” que a menudo se encuentra en la esquina superior izquierda de los teclados comunes. El código 127 (los siete bits a uno), otro carácter especial, equivale a “suprimir” . Aunque esta función se asemeja a otros caracteres de control, los diseñadores de ASCII idearon este código para poder “borrar” una sección de papel perforado (un medio de almacenamiento popular
hasta la década de 1980) mediante la perforación de todos los agujeros posibles de una posición de carácter concreta, reemplazando cualquier información previa. Dado que el código 0 era ignorado, fue posible dejar huecos (regiones de agujeros) y más tarde hacer correcciones. Muchos de los caracteres de control ASCII servían para marcar paquetes de datos, o para controlar protocolos de transmisión de datos
4.3 Caracteres imprimibles ASCII
El carácter 'espacio', designa al espacio entre palabras, y se produce normalmente por la barra espaciadora de un teclado. 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. El ASCII de siete bits proporciona siete caracteres “nacionales” y, si la combinación concreta de hardware y software lo permite, puede utilizar combinaciones de teclas para simular otros caracteres internacionales: en estos casos un backspace puede preceder a un acento abierto o grave (en los estándares británico
y estadounidense, pero sólo en estos estándares, se llama también “opening single quotation mark”), una tilde o una “marca de respiración”.
4.4 Rasgos estructurales
Los dígitos del 0 al 9 se representan con sus valores prefijados con el valor 0011 en binario (esto significa que
la conversión BCD-ASCII es una simple cuestión de tomar cada unidad bcd y prefijarla con 0011).
Las cadenas de bits de las letras minúsculas y mayúsculas sólo difieren en un bit, simplificando de esta forma
la conversión de uno a otro grupo.
4.6 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
- IBM367
- cp367
- csASCII
De estos, sólo los nombres “US-ASCII” y “ASCII” se usan ampliamente. A menudo se encuentran en el parámetro de“código de caracteres” opcional en la cabecera Content-Type de algunos mensajes MIME, en el elemento equivalente“meta” de algunos documentos HTML, y en la parte de declaración de codificación de carácter de la cabecera dealgunos documentos XML.
4.7Arte 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 de 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. El arte ASCII empezó siendo un arte experimental, pero pronto se popularizó como recurso para representar imágenes en soportes incapaces de procesar gráficos, como teletipos, etc. Aunque se puede componer arte ASCII manualmente mediante un editor de textos como la librería Aalib (de licencia libre), que ha alcanzado cierta popularidad. Aalib está soportada por algunos programas de diseño gráfico, juegos y reproductores de vídeo.