surgio fonetico fenicio evolucion escritura ejemplos donde completo caracteristicas alfabeto abyad unicode ascii xor

unicode - fonetico - Xoring letras del alfabeto con carácter de espacio



escritura abyad (6)

Buen punto

ASCII es un hijo de los códigos utilizados por los escritores de teletipos electromecánicos comúnmente conocidos por la marca Teletype.

Estas máquinas no tenían componentes electrónicos activos ... usaban tambores, motores y cámaras y alrededor de un millón de partes de metal para imprimir caracteres en mayúsculas. Tenían algunos componentes RLC y varios relés.

Fue bastante deliberado que solo un bit separa los caracteres en mayúsculas y minúsculas. De esta manera, los sistemas de transmisión y almacenamiento podrían usar 6 bits en lugar de 7.

De hecho, no necesita XOR, puede usar OR o AGREGAR para obtener el rango de minúsculas.

Simplemente ignorando el bit de un bit, un dispositivo que solo podía imprimir en mayúsculas podía manejar entradas de mayúsculas y minúsculas. Tiene sentido que este bit se use en un carácter de espacio ... es un bit que generalmente se ignora en términos de selección de elementos de tipo.

Aquí hay una muy antigua restaurada para funcionar.

¿Hay una razón histórica por la cual Xoring cualquier letra alfabética con el carácter de espacio cambia el caso de la letra? (es decir, ''a'' xor '''' = ''A'', ''F'' xor '''' = ''f'', etc ...)

¿O es esto solo una coincidencia?

(Suponiendo que los caracteres estén codificados en ASCII o Unicode).


De la entrada de wikipedia en ASCII:

El código en sí estaba modelado de modo que la mayoría de los códigos de control estaban juntos, y todos los códigos gráficos estaban juntos, para facilitar su identificación. Las primeras dos columnas (32 posiciones) estaban reservadas para los caracteres de control. [19] El carácter "espacio" tenía que aparecer antes que los gráficos para facilitar la clasificación, por lo que se convirtió en la posición 20hex; [20] por la misma razón, muchos signos especiales utilizados comúnmente como separadores se colocaron antes de los dígitos. El comité decidió que era importante admitir alfabetos en mayúsculas de 64 caracteres, y optó por un patrón ASCII para poder reducirlo fácilmente a un conjunto de códigos de gráficos de 64 caracteres. [21] Por lo tanto, las letras minúsculas no se entrelazaron con mayúsculas. Para mantener las opciones disponibles para letras minúsculas y otros gráficos, los códigos especiales y numéricos se colocaron antes que las letras, y la letra "A" se colocó en la posición 41hex para coincidir con el borrador de la norma británica correspondiente. [22] Los dígitos 0–9 se organizaron de modo que correspondan a los valores en el prefijo binario con 011, lo que hace que la conversión con el decimal codificado en binario sea directa.

Entonces parece que el comportamiento es una feliz coincidencia.


En ASCII, las letras mayúsculas son números binarios secuenciales que comienzan con A = 1 0 0.0001, mientras que las letras minúsculas son números binarios secuenciales que comienzan con a = 1 1 0.0001. En otras palabras, el caso de una letra puede cambiarse cambiando el segundo bit. Cambiar el segundo bit es equivalente a un XOR bitwise con 010.0000. Esa pasa a ser la representación ASCII del carácter de espacio.

Como otros han señalado, ciertamente fue deliberado que las letras mayúsculas y minúsculas difieran en solo un bit. De esto se deduce que al XORingar cualquier letra con el carácter representado por un 1 en ese bit y un 0 en cualquier otro bit se volteará su caso. Pero parece poco probable que esta sea la razón por la que el carácter de espacio fue asignado a 010.0000. Si hubiera tenido más sentido que 010.0000 fuera un período, un signo de dólar, el dígito 0 o cualquier otro carácter, sería igual de fácil cambiar el caso de una letra con XOR, usando el que sea que sea ese carácter. .

(Tenga en cuenta que solo estoy usando los puntos dentro de los números binarios para agrupar los bits para que sean más fáciles de leer. No tienen ningún otro significado).


Es solo una característica de las letras ASCII y algunos otros conjuntos de letras asignadas de manera similar. Para la gran mayoría de los caracteres alfabéticos en Unicode, simplemente no sucede. Por ejemplo, Ā es U + 0100, ā es U + 0101. En general, las letras mayúsculas y minúsculas se han asignado comúnmente a posiciones de código consecutivas. Y la mayoría de los caracteres alfabéticos en Unicode no tienen mayúsculas ni minúsculas.


Esto no es coincidencia, siempre es verdad.

Example: hex of ''a'' = 61 hex of space = 20 XOR ''a'' and space = 41 = ''A'' (in hex) same as: hex of ''z'' = 7A hex of space = 20 XOR ''z'' and space = 5A = ''Z'' (in hex)


Estoy seguro de que fue deliberado que el caso podría cambiarse cambiando un solo bit: habrá hecho que el software inicial sea mucho más eficiente. El hecho de que el carácter de espacio sea # 32 es irrelevante.