Resumen Tema 2
Hardware:
1.El bit:
Bit es el
acrónimo de Binary digit. Un bit es un dígito del sistema de numeración
binario. La capacidad de almacenamiento de una memoria digital también se mide
en bits, pues esta palabra tiene varias acepciones.
Lo usual es
que un registro digital u otras memorias digitales vinculadas con la
computación y/o con las telecomunicaciones, tengan una capacidad de
representación de informaciones de por ejemplo 8 bits, o 32 bits, o 64 bits, o
16 bits, etc; una memoria binaria tiene una capacidad efectiva de
representación de un bit.
Mientras que
en el sistema de numeración decimal se usan diez dígitos (diez símbolos), en el
binario se usan solo dos dígitos, el 0 y el 1. Un bit o dígito binario puede
representar uno de esos dos valores: 0 o 1.
1.1Combinaciones de bits:
Para representar
o codificar más 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á “apagado” y el segundo
“encendido”
1 - 0 - El primero está “encendido” y el
segundo “apagado”
1 - 1 - Los dos están “encendidos”
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.
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. Esto también es aplicable a números con
decimales.
1.3 Bits más y menos significativos:
Un conjunto o grupo
de bits, como por ejemplo un byte, representa un conjunto de elementos
ordenados. Se llama bit
más significativo (MSB) al bit que tiene un mayor peso
(mayor valor) dentro del conjunto, análogamente, se llama bit
menos
significativo (LSB) al bit que tiene un menor peso dentro del conjunto.
En cualquier
caso, el bit más significativo es el que generalmente se representa en el
extremo izquierdo y el menos significativo el del extremo derecho. Esto es
análogo al sistema decimal, en donde el dígito más significativo es el de la
izquierda y el menos significativo el de la derecha.
Este concepto de
significatividad se extiende al conjunto de bytes que representan números o
valores numéricos en las computadoras.
1.4 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. De este modo, un byte con el
número decimal 27 se
almacenaría en una máquina Little endian igual que en una
máquina big endian, ya que sólo ocupa un byte. Sin
embargo, para números más
grandes los bytes que los representan se almacenarían en distinto orden en cada
arquitectura.
Independiente de
si la máquina es de arquitectura little endian o big endian, los bits dentro de
cada byte siempre están en el mismo orden, con el bit más significativo a la
izquierda y el menos significativo a la derecha. Los registros del procesador,
que pueden ser de 4 a 64 bits, y más, también tienen sus bits en el mismo orden
en ambos tipos de máquina.
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.
Cuando se habla
de procesadores de, digamos 32 bits, nos referimos a su capacidad de procesar
datos en hasta 32 bits simultáneamente (también puede procesar datos en 8 y 16
bits). La denominación de “microprocesador de 32 bits” no se refiere al tamaño
del bus de datos del CPU ni del bus de direcciones, sino a su capacidad de
trabajar normalmente con los datos en el número máximo de 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!".
2. 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 bits.
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.[14] 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. Un byte también se conocía como “un
byte de 8 bits”, reforzando la noción de que era una tupla de n bits y que se
permitían otros tamaños.
2.2 Historia:
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.
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:
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. Los bytes de 8 bits se integran firmemente
en estándares comunes como Ethernet y HTML.
3.Sistema Binario
El sistema binario
en ciencias de la computación, es un sistema de numeración en el que los
números se representan utilizando solamente las cifras 0 y 1. Es uno de los que
se utilizan en las computadoras, debido a que estas trabajan internamente con
dos niveles de voltaje (encendido 1, apagado 0).
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 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á. 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. Titulada Un Análisis Simbólico de Circuitos Conmutadores
y Relés, la tesis de Shannon básicamente fundó el diseño práctico de circuitos
digitales. En noviembre de 1937, George Stibitz, trabajando por aquel entonces
en los Laboratorios Bell, construyó una computadora basada en relés 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. En
una demostración en la conferencia de la Sociedad Estadounidense de Matemática,
el 11 de septiembre de 1940, Stibitz logró enviar comandos de manera remota a
la Calculadora de Números Complejos a través de la línea telefónica mediante un
teletipo. Fue la primera máquina computadora utilizada de manera remota a
través de la línea de teléfono.
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.
El valor
numérico representado en cada caso depende del valor asignado a cada símbolo.
En una computadora, los valores numéricos pueden representar dos voltajes
diferentes; también pueden indicar polaridades magnéticas sobre un disco
magnético. La representación más habitual, es usando números arábigos, los
números binarios comúnmente son escritos usando los símbolos 0 y 1.
-100101 binario (declaración explícita de
formato)
-100101b (un sufijo que indica formato binario)
-100101B (un sufijo que indica formato
binario)
-bin 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)
-0b100101 (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. 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.
Ejemplo:
De esta
forma podremos averiguar en sistema binario, 131 se escribe 10000011
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 a 1 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.
Ejemplo
0,3125
(decimal) => 0,0101 (binario). Proceso: 0,3125 · 2 = 0,625 => 0 0,625 · 2
= 1,25 => 1 0,25 · 2 = 0,5 => 0 0,5 · 2 = 1 => 1 En orden: 0101 ->
0,0101 (binario)
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.
Ejemplo:
(Los números de arriba indican la potencia a
la que hay que elevar 2)
1514031201102
= 1 x 25 + 1 x 24 + 0 x 23 + 1 x 22
+ 0 x 21 + 1 x 20 = 32 + 16 + 0 + 4 + 0 + 1 = 53
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, 2-1).
2. Después
de realizar cada una de las multiplicaciones, sume todas y el número resultante
será el equivalente al sistema decimal.
Ejemplo:
0,101001 (binario) = 0,640625(decimal).
Proceso:
1 · 2
elevado a -1 = 0,5 0 · 2 elevado a -2 = 0 1 · 2 elevado a -3 = 0,125 0 · 2 elevado a -4 = 0 0 · 2 elevado a -5 = 0 1 · 2 elevado a -6 = 0,015625 La suma es: 0,640625
3.4 Operaciones con números binarios
3.4.1 Adición de números binarios
La tabla de
sumar para números binarios es la siguiente:
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 10, es decir, llevamos 1 a la siguiente posición de la izquierda
(acarreo).
Ejemplo:
10011000 + 00010101 ——————————— 10101101
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ón de 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
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.
Por ejemplo,
multipliquemos 10110 por 1001:
10110 1001
————————— 10110 00000 00000 10110 ———————11000110
3.4.4 División de números binarios
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, estas deben ser realizadas en binario.
Ejemplo:
Dividir
100010010 (274) entre 1101 (13):
100010010
/1101 = 010101 -0000 ———————
10001 -1101 ——————— 01000 - 0000 ————— —— 10000 - 1101 ——————— 00111 - 0000 ——————— 01110 - 1101
——————— 00001
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:
1) Agrupe 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 agregue ceros a la izquierda.
2)
Posteriormente vea el valor que corresponde de acuerdo a la tabla:
3) La
cantidad correspondiente en octal se agrupa de izquierda a derecha.
Ejemplo:
-110111
(binario) = 67 (octal). Proceso:
111 = 7 110
= 6 Agrupe de izquierda a derecha: 67
3.5.2 Octal a binario
Cada dígito
octal se convierte en su binario equivalente de 3 bits y se juntan en el mismo
orden.
Ejemplo:
-247 (octal)
= 010100111 (binario). El 2 en binario es 10, pero en binario de 3 bits es
Oc(2) = B(010); el Oc(4) = B(100) y el Oc(7) = (111), luego el número en
binario será 010100111.
3.6 Conversión entre binario y
hexadecimal
3.6.1 Binario a hexadecimal
Para
realizar la conversión de binario a hexadecimal, realice lo siguiente:
1) Agrupe 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.
2)
Posteriormente vea el valor que corresponde de acuerdo a la tabla:
3) La
cantidad correspondiente en hexadecimal se agrupa de derecha a izquierda.
Ejemplo:
- 110111010
(binario) = 1BA (hexadecimal). Proceso:
1010 = A
1011 = B 1 entonces agregue 0001 = 1 Agrupe de derecha a izquierda: 1BA
3.6.2 Hexadecimal a binario
Note que
para pasar de Hexadecimal a binario, se remplaza el número Hexadecimal por el
equivalente de 4 bits, de
forma
similar a como se hace de octal a binario.
4.ASCII
ASCII (American
Standard Code for Information Interchange), es un código de caracteres basado
en el alfabeto latino, tal como se usa en inglés moderno. Fue creado en 1963 por
el Comité Estadounidense de Estándares (ASA)como una refundición o 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.
El código
ASCII utiliza 7 bits para representar los caracteres; casi todos los sistemas informáticos
actuales utilizan el código ASCII.
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.
4.2 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ía empezado a desarrollar el código
ASCII. La Agencia de
Estándares Estadounidense (ASA), que se convertiría más tarde en el Instituto
Nacional Estadounidense de Estándares (ANSI), publicó por primera vez el código
ASCII en 1963. El ASCII publicado en 1963.
4.3 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 (como impresoras) 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 dato. Actualmente los usuarios de ASCII
usan menos los caracteres de control.
4.4 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.
4.7 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.