Sistemas de numeracion

Introducción al sistema binario

A finales de la década de 1930, Claude Shannonmostró que utilizando interruptores que se encontraban cerrados para"verdadero" y abiertos para "falso", se podían llevar a cabooperaciones lógicas asignando el número 1 a "verdadero" y el número 0 a"falso".

Este sistema de codificación de información se denominó binario.Es la forma de codificación que permite el funcionamiento de losordenadores. El sistema binario utiliza dos condiciones (representadaspor los dígitos 0 y 1) para codificar información.

Desdeel año 2000 AC, los seres humanos han contado utilizando 10 dígitos (0,1, 2, 3, 4, 5, 6, 7, 8, 9). Esto se denomina "base decimal" (o base10). Sin embargo, las civilizaciones antiguas, e incluso algunasaplicaciones actuales, utilizaron y continúan utilizando otras basesnuméricas:

  • Sexagesimal (60), utilizada por los Sumerios. Esta base se utilizaactualmente en nuestro sistema de cronometraje, para los minutos y lossegundos,
  • Vigesimal (20), utilizada por los mayas,
  • Duodecimal(12), utilizada en el sistema monetario del Reino Unido e Irlanda hasta1971: una "libra" valía veinte "chelines", y un "chelín" valía doce"peniques". El actual sistema de cronometraje también se basa en docehoras (algo que se traduce en el uso que se le da en Norteamérica),
  • Quinario (5), utilizado por los mayas,
  • Binario (2), utilizado por la tecnología digital.

El bit (dígito binario)

El término bit (abreviado con la minúscula b) significa dígito binario,y corresponde al número 0 o 1 en la numeración binaria. Es la unidad deinformación más pequeña que puede manipular una máquina digital. Esposible representar esta información binaria:

  • con una señal eléctrica o magnética que, más allá de un cierto nivel, representa el 1,
  • a través de la aspereza o profundidad de los hoyos de una superficie,
  • utilizandocircuitos eléctricos, componentes eléctricos que poseen dos condicionesestables (una que representa al 1 y la otra al 0).

Por lo tanto, el bit se puede establecer con uno dedos estados: tanto con 1 como 0. Con dos bits, se pueden obtener 4condiciones diferentes (2x2):

0 0
0 1
1 0
1 1

Con 3 bits, se pueden obtener ocho condiciones diferentes (2x2x2):

Valor binario de 3 bits Valor decimal
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Con un grupo n de bits, es posible representar 2 n valores.

Valores de los bits

En un número binario, el valor de un bitdepende de su posición, empezando desde la derecha. Como las decenas,centenas y millares en un número decimal, el valor de un bit seincrementa por dos a medida que va desde la derecha hacia la izquierda,como se muestra en el siguiente cuadro:

Numero binario11111111
Valor27 = 12826 = 6425 = 3224 = 1623 = 822 = 421 = 220 = 1

Conversión

Para convertir una cadena binaria en un númerodecimal se debe multiplicar cada bit por su valor, y luego sumar losproductos. De esta forma, la cadena binaria 0101 en número decimalsería:

23x0 + 22x1 + 21x0 + 20x1
= 8x0 + 4x1 + 2x0 + 1x1
= 5

El byte

El byte (abreviado con la mayúscula B)es una unidad de información compuesta por 8 bits. Se puede utilizarpara almacenar, entre otras cosas, un carácter, como por ejemplo unaletra o un número.

Agrupar números en cúmulosde 8 facilita su lectura, así como agrupar números en grupos de treshace más legibles los millares cuando se trabaja en base decimal. Porejemplo, el número "1.256.245" se lee mejor que "1256245".

Por lo general, una unidad de información de 16 bits se denomina palabra.

Una unidad de información de 32 bits se denomina palabra doble (o también, dword).

Paraun byte, el menor número posible es 0 (representado por ocho ceros:00000000), y el mayor es 255 (representado por ocho unos: 11111111),que permite la creación de 256 valores diferentes.

27 =128 26 =64 25 =32 24 =16 23 =8 22 =4 21 =2 20 =1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1

Kilobytes y megabytes

Durante mucho tiempo, la informática fue una cienciainusual ya que utilizaba diferentes valores para sus unidades,diferentes a las del sistema métrico (también llamado "sistemaInternacional"). Los usuarios de ordenadores aprendían con rapidez que1 kilobyte estaba compuesto por 1024 bytes. Por este motivo, endiciembre de 1998, la Comisión Electrotécnica Internacional intervinoen el tema. (http://physics.nist.gov/cuu/Units/binary.html). La lista siguiente incluye las unidades estandarizadas de la IEC:

  • Un kilobyte (kB) = 1000 bytes
  • Un megabyte (MB) = 1000 kB = 1.000.000 bytes
  • Un gigabyte (GB) = 1000 MB = 1.000.000.000 bytes
  • Un terabyte (TB) = 1000 GB = 1.000.000.000.000 bytes
Nota¡Advertencia! Algunos programas (e incluso algunos sistemasoperativos) aún utilizan la notación anterior a 1998, que mostraremos acontinuación:
  • Un kilobyte (kB) = 210 bytes = 1024 bytes
  • Un megabyte (MB) = 220 bytes = 1024 kB = 1.048.576 bytes
  • Un gigabyte (GB) = 230 bytes = 1024 MB = 1.073.741.824 bytes
  • Un terabyte (TB) = 240 bytes = 1024 GB = 1.099.511.627.776 bytes

El IEC también definió el kilo binario (kibi), al mega binario (mebi), al giga binario (gibi) y al tera binario (tebi).
Se definieron de la siguiente manera:

  • Un kibibyte (kiB) vale 210 = 1024 bytes
  • Un mebibyte (MiB) vale 220 = 1.048.576 bytes
  • Un gibibyte (GiB) vale 230 = 1.073.741.824 bytes
  • Un tebibyte (TiB) vale 240 = 1.099.511.627.776 bytes

En algunos idiomas, como el francés y el finlandés,la palabra byte no empieza con la letra "b", pero la mayor parte de lacomunidad internacional prefiere el término en inglés "byte". Esto dalas siguientes notaciones para kilobyte, megabyte, gigabyte, yterabyte:

kB, MB, GB, TB
NotaObserve el uso de la mayúscula B para distinguir Byte de bit.

Esta es una captura de pantalla del programa HTTrack, el navegador de Internet fuera de línea más popular, que muestra cómo su utiliza esta notación:

Captura de pantalla de HTTrack

Operaciones binarias

En el sistema binario se pueden realizar operaciones simples tales como adición, sustracción y multiplicación.

Adición en el sistema binario

La adición en el sistema binario sigue las mismas reglas que en el sistema decimal:
Secomienza agregando los bits que tienen menor valor (aquellos que seencuentran en la derecha) y se lleva el valor al siguiente lugar cuandola suma de dos bits en la misma posición es más grande que el valormayor de la unidad (en sistema binario: 1). Luego, este valor setransporta al bit de la siguiente posición.

Por ejemplo:

 01101
+01110
------
 11011

Multiplicación en el sistema binario

La tabla de multiplicación en el sistema binario es simple:

  • 0x0=0
  • 0x1=0
  • 1x0=0
  • 1x1=1

La multiplicación se realiza calculando un productoparcial para cada múltiplo (sólo los bits que no contiene 0 darán unresultado que no contenga ceros). Cuando el bit del múltiplo es cero,el producto parcial es nulo; cuando es equivalente a uno, el productoparcial se forma con el multiplicando, alternado un número X de veces,donde X es igual al peso del múltiplo del bit.

Por ejemplo:

  0101 multiplicando
x 0010 múltiplo
------
  0000
 0101 
0000  
------
 01010

Notación hexadecimal

Como los números binarios eran cada vez más largos, se tuvo que introducir una nueva base: numeración hexadecimal.
Elsistema numérico hexadecimal utiliza la base 16, de manera que despuésde los primeros 10 dígitos vienen las primeras seis letras: 0, 1, 2, 3,4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Un ejemplo

El número 27 (en base decimal) es, en base 16: 1*161 + 11*160 = 1*161 + B*160
es decir, 1B en base 16.

El número FB3 (en base 16) es, en base decimal: F*162 + B*161 + 3*160 = 3840 + 176 + 3 = 4019

Unbyte se convierte en hexadecimal separándolo en dos grupos de 4 bitscada uno, cada uno de los cuales corresponde a un dígito hexadecimal.

2 A D 5
0010 1010 1101 0101

Representación de un número en un ordenador

Representar (o codificar) un número significa expresarlo en forma binaria.La representación de números en un ordenador es necesaria para que éstepueda almacenarlos y manipularlos. Sin embargo, el problema es que unnúmero matemático puede ser infinito (tan grande como se desee), perola representación de un número en un ordenador debe ocupar un número debits predeterminado. Por lo tanto, la clave es predeterminar un númerode bits y cómo se interpretan para que representen la cifra de lamanera más eficiente posible. Por este motivo, sería tonto codificar uncarácter utilizando 16 bits (65.536 posibilidades) cuando se utilizanmenos de 256.

Representación de un número natural

Un número natural es un número entero positivo ocero. La elección de la cantidad de bits a utilizar depende delintervalo de números que se utilizarán. Para codificar los númerosnaturales entre 0 y 255, todo lo que se necesita son 8 bits (un byte)como 28=256. Por lo general, la codificación de un bit n se puede utilizar para representar números naturales entre 0 y 2n-1.

Pararepresentar un número natural, una vez definido el número de bits seutilizarán para su codificación, ordene los bits en celdas binarias(cada bit ubicado de acuerdo a su peso binario en el orden de derecha aizquierda) y luego "llene" los bits que no se utilizan con ceros.

Representación de un número entero

Un número entero es un número completo que puede sernegativo. Por lo tanto, el número se debe codificar de manera que sepueda distinguir si es positivo o negativo y de forma que siga lasreglas de adición. El truco consiste en utilizar un método denominado complemento doble.

  • Un número entero o cero se representará en base binaria(base 2) como un número natural, con la excepción de que el bit demayor peso (aquel que se encuentra más a la izquierda) representa elsigno más o menos. Por lo tanto, para un número entero o cero, este bitse debe establecer en 0 (lo que corresponde al signo más, así como 1 esel signo menos). De este modo, si un número natural se codificautilizando 4 bits, el mayor número posible será 0111 (o 7 en basedecimal).
    Generalmente, el mayor número entero posible codificado utilizando n bits será 2n-1-1.
  • Un número entero negativo se codifica utilizando complementos dobles.
    El principio de los complementos dobles:
    Se elige un número negativo.
    • Se toma su valor absoluto (su equivalente positivo)
    • Se representa en base binaria utilizando n-1 bits
    • Cada bit se cambia con su complemento (es decir, los ceros se reemplazan con unos y viceversa)
    • Se suma 1
    Nótese que al sumar un número y sus complementos dobles es resultado es 0
Veamos esto con un ejemplo:
Queremos codificar el valor 5 utilizando 8 bits. Para hacer esto:
  • escriba el 5 en sistema binario 00000101
  • cámbielo por su complemento 11111010
  • sume 1: 11111011
  • la representación binaria en 8 bits de 5 es 11111011
Comentarios:
El bit de mayor peso es 1, de manera que es, de hecho, un número negativo.
Si sumamos 5 y -5 (00000101 y 11111011) la suma da 0 (con el remanente 1).

Representación de un número real

El objetivo es representar un número con un punto decimal en sistema binario (por ejemplo, 101.01, que no se lee ciento uno punto cero uno ya que es, de hecho, un número binario, 5,25 en sistema decimal) mediante el formato 1.XXXXX... * 2n (en nuestro ejemplo, 1.0101*22). El estándar IEEE 754 define cómo codificar un número real.
Este estándar ofrece una forma de codificar un número utilizando 32 bits, y define tres componentes:

  • el signo más/menos se representa por un bit: el bit de mayor peso (aquel que se encuentra más a la izquierda)
  • el exponente se codifica utilizando 8 bits inmediatamente después del signo
  • la mantisa (los bits después del punto decimal) con los 23 bits restantes
Así, la codificación sigue la forma:
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
  • la s representa al bit del signo.
  • cada e representa al exponente del bit
  • cada m representa a la mantisa del bit

Sin embargo, hay ciertas restricciones para los exponentes:

  • el exponente 00000000 está prohibido
  • el exponente 11111111 está prohibido. Sin embargo, a veces seutiliza para informar de errores. Esta configuración numérica sedenomina NaN (Not a number), que significa No es un número.
  • Sele debe sumar 127 (01111111) al exponente para convertir al decimal enun número real dentro del sistema binario. Por lo tanto, los exponentespueden variar de -254 a 255

Así, la fórmula para expresar números reales es:

(-1)^S * 2^( E - 127 ) * ( 1 + F )

donde:

  • S es el bit del signo y, por lo tanto, 0 se entiende como positivo ( -1^0=1 ).
  • E es el exponente al que se le debe sumar 127 para obtener el equivalente codificado
  • F es la parte de la fracción, la única que se expresa, y la que se le suma a 1 para realizar el cálculo.

Aquí hay un ejemplo:
Se codificará el valor 525,5.

  • 525,5 es positivo, por lo que el primer bit será 0.
  • Su representación en el sistema binario (base 2) es: 1000001101.1
  • Al normalizarlo, obtenemos: 1.0000011011*2^9
  • Sumándole 127 al exponente, que es 9, da 136 o, en sistema binario (base 2): 10001000
  • La mantisa está compuesta por la parte decimal de 525,5 en base 2 normal, que es 0000011011.
  • Como la mantisa debe tomar 23 bits, se deben agregar ceros para completarla:
    00000110110000000000000
  • La representación binaria de 525,5 bajo el estándar IEEE 754 es, por lo tanto:
    0 1000 1000 00000110110000000000000
    0100 0100 0000 0011 0110 0000 0000 0000 (4403600 en sistema hexadecimal)

A continuación hay otro ejemplo, esta vez utilizando un número real negativo :
Se codificará el valor -0,625.

  • El bit s es 1, como 0,625 es negativo.
  • 0,625 se escribe en sistema binario (base 2) de la siguiente manera: 0.101
  • Queremos escribirlo en la forma 1.01 x 2-1
  • Consecuentemente, el exponente vale 1111110 como 127 - 1 = 126 (o 1111110 en sistema binario)
  • La mantisa es 01000000000000000000000 (sólo se representan losdígitos después del punto decimal, ya que el número entero es siempreequivalente a 1)
  • La representación binaria de 0,625 bajo el estándar IEEE 754 es, por lo tanto:
    1 1111 1110 01000000000000000000000
    1111 1111 0010 0000 0000 0000 0000 0000 (FF 20 00 00 en sistema hexadecimal)

Codificación de datos

El código Morse fue el primero en utilizarse paralas comunicaciones de larga distancia. Fue inventado por Samuel F. B.Morse en 1844. Este código está compuesto por puntos y guiones (unaespecie de código binario).Se usaba para realizar comunicaciones en forma mucho más rápida quePony Express, el servicio de correo de Estados Unidos en ese entonces.El telegrafista, quien debía tener un perfecto conocimiento del código,era una figura clave en esa época.

Se inventaron diversos códigos, entre ellos el código Émile Baudot (también conocido como código Baudot o Código Murray).

El10 de marzo de 1876, el Dr. Graham Bell creó el teléfono: un inventorevolucionario para el envío de señales de voz a través de cables. Unhecho interesante es que la Cámara de Representantes recientementeresolvió nombrar a Antonio Meucci como el verdadero inventor delteléfono. De hecho, Meucci presentó una solicitud de patente en 1871,pero sólo la renovó hasta 1874.

Las líneastelegráficas dieron lugar a las teleimpresoras: máquinas que podíancodificar y decodificar caracteres utilizando el código Baudot (paraese entonces, los caracteres se codificaban utilizando 5 bits y sólo sedisponía de 32 caracteres).

En la década de1960, se adoptó el código ASCII (American Standard Code for InformationInterchange) como el nuevo estándar. Con ASCII, los caracteres sepueden codificar utilizando 8 bits y se obtienen 256 caracteresposibles.

¿Qué es el código ASCII?

La memoria de un ordenador guarda toda la información en formato digital.No hay forma de almacenar caracteres directamente. Cada uno de loscaracteres tiene un código digital equivalente. Esto se denomina código ASCII (American Standard Code for Information Interchange). El código ASCII básico representaba caracteres utilizando 7 bits (para 128 caracteres posibles, enumerados del 0 al 127).

  • Los códigos de 0 al 31 no se utilizan para caracteres. Éstos se denominan caracteres de control ya que se utilizan para acciones como:
    • Retorno de carro (CR)
    • Timbre (BEL)
  • Los códigos 65 al 90 representan las letras mayúsculas.
  • Los códigos 97 al 122 representan las letras minúsculas
    (Si cambiamos el 6º bit, se pasa de mayúscula a minúscula; esto equivale a agregar 32 al código ASCII en base decimal).

Tabla de caracteres ASCII

caractère code ASCII code hexadécimal
NUL (Null) 0 00
SOH (Start of heading) 1 01
STX (Start of text) 2 02
ETX (End of text) 3 03
EOT (End of transmission) 4 04
ENQ (Enquiry) 5 05
ACK (Acknowledge) 6 06
BEL (Bell) 7 07
BS (Backspace) 8 08
TAB (Horizontal tabulation, tabulación horizontal) 9 09
LF (Line Feed, salto de línea) 10 0A
VT (Vertical tabulation, tabulación vertical) 11 0B
FF (Form feed) 12 0C
CR (Carriage return, retorno de carro) 13 0D
SO (Shift out) 14 0E
SI (Shift in) 15 0F
DLE (Data link escape) 16 10
DC1 (Device control 1) 17 11
DC2 (Device control 2) 18 12
DC3 (Device control 3) 19 13
DC4 (Device control 4) 20 14
NAK (Negative acknowledgement) 21 15
SYN (Synchronous idle) 22 16
ETB (End of transmission block, fin de bloque de transmisión) 23 17
CAN (Cancel, cancelar) 24 18
EM (End of medium, fin de medio) 25 19
SUB (Substitute, sustituto) 26 1A
ESC (Escape, carácter de escape) 27 1B
FS (File separator, separador de archivos) 28 1C
GS (Group separator, separador de grupo) 29 1D
RS (Record separator, separador de registros) 30 1E
US (Unit separator, separador de unidades) 31 1F
SP (Space, espacio) 32 20
! 33 21
" 34 22
# 35 23
$ 36 24
% 37 25
& 38 26
' 39 27
( 40 28
) 41 29
* 42 2A
+ 43 2B
, 44 2C
- 45 2D
. 46 2E
/ 47 2F
0 48 30
1 49 31
2 50 32
3 51 33
4 52 34
5 53 35
6 54 36
7 55 37
8 56 38
9 57 39
: 58 3A
; 59 3B
< 60 3C
= 61 3D
> 62 3E
? 63 3F
@ 64 40
A 65 41
B 66 42
C 67 43
D 68 44
E 69 45
F 70 46
G 71 47
H 72 48
I 73 49
J 74 4A
K 75 4B
L 76 4C
M 77 4D
N 78 4E
O 79 4F
P 80 50
Q 81 51
R 82 52
S 83 53
T 84 54
U 85 55
V 86 56
W 87 57
X 88 58
Y 89 59
Z 90 5A
[ 91 5B
\ 92 5C
] 93 5D
^ 94 5E
_ 95 5F
` 96 60
a 97 61
b 98 62
c 99 63
d 100 64
e 101 65
f 102 66
g 103 67
h 104 68
i 105 69
j 106 6A
k 107 6B
l 108 6C
m 109 6D
n 110 6E
o 111 6F
p 112 70
q 113 71
r 114 72
s 115 73
t 116 74
u 117 75
v 118 76
w 119 77
x 120 78
y 121 79
z 122 7A
{ 123 7B
| 124 7C
} 125 7D
~ 126 7E
Tecla de borrar 127 7F

Tabla de caracteres de ASCII extendido

El ASCII se desarrolló para utilizarse con el idiomainglés. No posee caracteres acentuados, o caracteres específicos deotros idiomas. Para codificar estos caracteres, se necesitaba unsistema de códigos distinto. El código ASCII se extendió a 8 bits (elequivalente a un byte) a fin de codificar más caracteres (esto sedenomina código ASCII extendido).
Este código asigna los valores del 0 al 255 (codificados en 8 bits, es decir, en 1 byte)para las mayúsculas, las minúsculas, los dígitos, las marcas depuntuación y otros símbolos (incluyendo los caracteres acentuados delcódigo iso-latin1).

El código ASCII extendido no está estandarizado y varía de acuerdo a la plataforma en que se utiliza.

Los dos grupos de caracteres más comunes del código ASCII extendido son:

  • Código extendido ASCII OEM, que estaba integrado en el primer PC de IBM.

    Código extendido ASCII OEM

  • Código extendido ASCII ANSI, utilizado por los sistemas operativos actuales.

    Código extendido ASCII ANSI

Código EBCDIC

El código EBCDIC (en castellano, código de intercambio decimal binario extendido),desarrollado por IBM, se utiliza para codificar caracteres con 8 bits.A pesar de que IBM lo utiliza en muchos de sus equipos, no ha tenidotanto éxito como ASCII.

Unicode

Unicode es un sistema de codificación decaracteres de 16 bits desarrollado en 1991. Unicode puede representarcualquier carácter a través de un código de 16 bits, independientementedel sistema operativo o el idioma de programación utilizado.

Incluyecasi todos los alfabetos actuales (como el árabe, el armenio, elcirílico, el griego, el hebreo y el latín) y es compatible con elcódigo ASCII.

Encontrará una lista de todos los códigos que se utilizan en Unicode en http://www.unicode.org.

Codificación QP

La codificación QP (abreviado QP)consiste en la utilización de la codificación de 7 bits US-ASCII(letras no acentuadas) para codificar un texto de un alfabeto decaracteres de 8 bits (letras acentuadas), como el alfabeto ISO-Latin-1,que se utiliza para la mayoría de los idiomas de los países de Europaoccidental.

El concepto de la codificación QP

A través de la codificación QP, los caracteresestándares, que en el código ASCII van desde el 33 al 127 (excepto parael signo igual, que es el código 16) se codifican utilizando el códigoUS-ASCII de 7 bits.

Los caracteres especialesde 8 bits o los caracteres acentuados (à, é, ç, ö, ñ, etc.) secodifican utilizando el signo igual, seguido de dos dígitoshexadecimales. A continuación encontrará la codificación QP para loscaracteres especiales comunes:

CarácterCodificación QP
Espacio_
"=22
#=23
%=25
&=26
(=28
)=29
,=2C
.=2E
//
:=3A
;=3B
<=3C
==3D
>=3E
?=3F
@=40
[=5B
\=5C
]=5D
^=5E
'=27
{=7B
|=7C
}=7D
~=7E
Con la codificación QP, el texto se debe dividir de forma que ninguna línea contenga más de 76 caracteres.

Codificación Base 64

La codificación Base 64 se basa en el uso delos caracteres US-ASCII (no acentuados) para codificar cualquier tipode información mediante un código de 8 bits.

Enun principio, los protocolos de correo electrónico se diseñaron paraque enviaran mensajes de sólo texto. Pero como los sistemas de correoelectrónico varían en gran medida, la transferencia de datos binariossolía tener como resultado el cambio del contenido del mensaje,convirtiendo el mensaje original en un documento ilegible.

Elformato Base 64 se usa para enviar y recibir correos electrónicos, ypuede transmitir cualquier tipo de documento binario (como, porejemplo, una aplicación, un archivo de vídeo o audio) como un archivoadjunto del mensaje de correo electrónico, codificándolo en forma decaracteres básicos.

La codificación Base 64 incrementa en un 33% el volumen de todos los datos codificados.

El concepto de la codificación Base 64

El concepto de la codificación Base 64 consiste enel uso de 4 caracteres imprimibles (en formato US-ASCII) para codificarcualquiera de los 3 bytes (3x8 bits = 24 bits).

Lacodificación Base 64 utiliza un alfabeto de 64 caracteres imprimiblespara representar 6 bits de datos. Los 64 símbolos del alfabeto seeligieron porque son universalmente legibles, y también porque notienen ningún significado especial en los principales protocolos decorreo electrónico (en particular, en el protocolo SMTP).

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwkyz
123456789+/.

Si leemos los datos binarios de izquierda a derecha,se crean grupos de 24 bits mediante la combinación de bloques de tresbytes de datos cada uno. Luego, cada grupo de 24 bits se divide en 4grupos de 6 bits, cada uno de ellos correspondiente a 4 caracteres delalfabeto Base 64.

La codificación Base 64 seutiliza para datos que forman un múltiplo de 24 bits. Si la cantidad dedatos que deben ser codificados no es un múltiplo de 24 bits, la cadenaBase 64 resultante debe terminar en cadenas del signo igual ("=") quevan del 0 al 3, a fin de llegar a un múltiplo de 24. Este 65º carácterpuede utilizarse únicamente al final de los datos codificados.

Paragarantizar la compatibilidad con los sistemas de correo electrónico,los datos Base 64 se formatean con retornos de carro para que ningunalínea sea mayor a 76 caracteres.

Codificación UUencode

La codificación UUencode (la abreviatura de Codificación Unix-to-Unix) es un algoritmo utilizado para convertir datos binarios de 8 bits a un formato de 7 bits.

La codificación Uuencoding se creó originalmente para enviar archivos binarios mediante el protocolo de correo electrónico uucp.

El sistema uucpconvertía conjuntos de caracteres utilizados por diferentes sistemas yno podía distinguir el cuerpo del mensaje de un archivo adjunto. Poreste motivo, se diseñó la codificación Uuencode: para convertirarchivos binarios a un formato de texto compatible con el correoelectrónico, y que no incluyera caracteres que, por error, pudiesenconvertirse y generar un archivo adjunto ilegible.

La decodificación, es decir, la localización de un archivo binario dentro de un archivo Uuencoded se denomina Uudecoding).

Formato de un archivo Uuencoded

Un archivo Uuencode comienza con una línea con la siguiente forma:

begin mode file_name

Principio de la codificación Uuencode

La codificación Uuencode consiste en tomar grupos de3 bytes (24 bits) y tratarlos como 4 grupos de 6 bits, representadospor los valores 0 al 63 inclusive. Si hay menos de 24 bits en el flujoentrante, UUencode rellena los restantes con ceros.

Uuencode suma 32 (decimal) a cada valor para obtener un valor que se corresponda con los caracteres imprimibles de ASCII.

Losdatos se representan en líneas de 60 caracteres. Por lo tanto, cadalínea se puede utilizar para codificar 45 bytes de flujo entrante, yaque 4 bytes de salida representan 3 bytes de entrada de datos.

Cada línea está precedida por un carácter que muestra la cantidad de caracteres que tiene la línea.

Después de todos los datos codificados viene un línea que contiene sólo un espacio, seguido de una línea que contiene la cadena end.El espacio antes de la línea final se reemplaza a veces con el carácterASCII 96 (acento grave), ya que ciertos clientes de correo electrónicoeliminan las líneas vacías.

Comentarios

me parece bien pero no entiendo JAJAJAJAJAJAJA no entiendo


Añadir un Comentario:



Inserta aquí el código de verificación que ves en la imagen.

De todo y para todos

De todo y para todos

Archivo

Categorías


sistemas

Suscríbete

RSS | Atom

Contacto

Contactar

Albergado en:blogspot.es

Noticias: Noticias