2010-10-27 20 views
8

He estado leyendo hexadecimal dígito por dígito durante muchos años y ahora estoy harto de traducir valores hexadecimales para números que requieren más de 16 bits en inglés. ¿Existe una forma más elegante de traducir hexadecimal al inglés?Lectura de valores hexadecimales en inglés

En Inglés, existe un sistema simple para convertir valores decimales en Inglés. El decimal 10 es "diez" en inglés, el decimal 57 es el inglés "fifty-seven", el decimal 32767 es "treinta y dos mil setecientos sesenta y siete", etc.

Por lo que sé, no existe un sistema para elegantemente representando hexadecimal en inglés. El hexadecimal 10 es el inglés "one zero" or "one oh", hexadecimal F0ED es "eff oh eee dee", hexadecimal 30F538B9310 es inglés "tres oh eff cinco tres ocho abeja nueve tres uno oh". Los valores que requieren más bits se vuelven cada vez más dolorosos de traducir. A veces convirtiéndolo en el equivalente decimal para obtener una elegante traducción al inglés, por lo que el hexadecimal 10 se convierte en "dieciséis".

Gracias por cualquier ayuda.

+1

en realidad, para valores pequeños no es tan malo, hexadecimal 10 se habla 'hex 10' (hex 15, hex 25, hex lo que sea). Pero, cualquier cosa con 'A-F' se pronuncia automáticamente de la manera que usted dijo. Buena suerte con tu esfuerzo Quijotesco. – KevinDTimm

+0

No estoy seguro de cuál es el problema. No está diciendo * "eff oh eee dee" * discutiblemente más elegante que el equivalente * "sesenta y un mil seiscientos setenta y siete" * o * "seis uno six seven seven" *? Ciertamente es más sucinto. – LukeH

+2

"tres oh eff, cinco oh eight bee, noventa y tres diez" (30F, 508B, 9310) es fácil de decir y fácil de entender. Rápido, ¿cómo dice su equivalente decimal, "3,364,361,048,848"? – tnyfst

Respuesta

11

Esto está en Knuth - buscando en Google la frase "vybong bysanton" (que se ha pegado en mi mente desde que leerlo) produce this slashdot comment y la respuesta:

En la sección 4.1 de The Art of Computer de programación, Donald Knuth describe:

... un destacado ingeniero civil sueco-americano llamado John W. Nystrom [que] decidió ... [elaborar] un sistema de numeración completa, pesos y medidas basadas en aritmética radix-16. Él escribió: "Estoy sin miedo, o no dude, a abogar por un sistema binario de aritmética y metrología. Sé que tengo la naturaleza en mi lado; si no tengo éxito en le imprimo su utilidad y gran importancia para la humanidad, se reflejará que mucho menos crédito en nuestra generación , sobre nuestros hombres científicos y filósofos ". Nystrom diseñó medios especiales para pronunciar números hexadecimales; por ejemplo, [0xC0160] iba a leerse "vybong, bysanton."Todo su sistema era llama el sistema tonal, y se describe en J. Franklin Inst. 46 (1863), 263-275, 337348, 402-407.

Tal vez deberías conseguir que la cuestión de ese diario y darle una oportunidad.

(respuesta :)

citado de http://www.monmouth.com/~colonel/tonal.html [monmouth.com]

De Recreaciones en Matemáticas, por lame (Van Nostrand, 1917):

John W. Nystrom de Filadelfia ideó hace unos cincuenta años, el sistema tonal & quot de numeración en la que 16 es la base en vez de 10 como en el sistema decimal. Los números 1, 2, 3, 4, etc., se llamaron An, De, Ti, Go, etc., y se idearon nuevos caracteres para 10, 11, 12, 13, 14, 15. Este sistema también abarcaba una nueva división del año en 16 meses, teniendo éstos los nombres ENERO, Debrian, Timander, Gostus, Suvenary, Bylian, Ratamber, Mesidius, Nictorary, Kolumbian, Husander, Victorio, Lamboary, Polian, Fylander, Tonborious, la primera dos letras de cada mes siendo los nombres de los dieciséis números.

Esto es un poco inexacto. La figura 9 se usó para 10, en el principio de hacer que los dígitos para 8 o más se parezcan a los de sus complementos de 16 escritos al revés; y se ideó una nueva figura para 9. El nombre de 12 era Vy, no Vi; y creo que los meses meth, nith, vyth y tonth fueron llamados Mesudius, Nictoary, Vyctorius, y Tonborius.

El año comenzó en el solsticio de invierno, que es el Anth de Anuary. Todos los meses tenían días tonra a excepción de Debrian, Gostus y Lamboary, que solo tenían tonby, pero Debrian tenía un día adicional en años bisiestos.

Los poderes de la tonelada eran: ton, san, mill, bong. Estos podrían usarse como prefijos para indicar la multiplicación o como sufijos para indicar la división. Por ejemplo, el día se dividió en toneladas (dieciséis) tims, un tim en ton timtons, y un timton en ton timsans.

+6

Hoy en día tienen medicamentos para eso. –

+0

Esta es una excelente respuesta, gracias. – ytrp

0

¿Está buscando algo para hacer usted mismo al leer tales números, o para un algoritmo para una computadora?

Si es algo para usted, entonces no creo que haya una manera fácil, solo practique. P.ej. reconocer A0 es 160, entonces A3 debe ser 163, etc.

Si está buscando un algoritmo para una computadora, conviértalo primero en decimal y luego conviértalo en texto. entonces A3 -> 163 -> "cien" + "y sesenta" + "tres".

+0

La conversión entre hexadecimal y decimal no es el problema. El problema es traducir el valor hexadecimal en inglés. El ejemplo que presenté donde un valor hexadecimal se convierte a decimal antes de su traducción al inglés tenía la intención de demostrar la falta de un método para traducir hexadecimal directamente al inglés elegante. – ytrp

0

mmm ..) lo convierten en decimales en primer lugar, a continuación, convertir resultado de Inglés? mmm? : D o me perdí algo?)

+0

Tu respuesta señala el problema que intento resolver. Imagine que tiene una conversación con alguien y en algún momento aparece el valor hexadecimal F0213A0DE165C. Uno simplemente retransmitiría cada dígito uno tras otro hasta que, sin embargo, esto no es nada elegante en comparación con el sistema que existe para traducir el decimal al inglés. El decimal 159123 se convierte en "ciento cincuenta y nueve mil ciento veintitrés". No conozco ningún sistema elegante para traducir hexadecimal al inglés de la misma manera que lo demostré entre el decimal y el inglés. – ytrp

+0

dado que la base 16 comprende igual o menos dígitos que la base 10 para referirse al mismo número, no diría "dos seis dee nueve tres" será más rápido que decir "ciento cincuenta y nueve mil ciento veintitrés", por lo tanto su solicitud discutible? (159123 base 10 es igual a 26D93 base 16) - y, como se comentó anteriormente, "rápido, ¿cuál es la forma más rápida de decir 3364361048848?" – KevinDTimm

2

Mis compañeros de trabajo y yo con frecuencia utilizamos las agrupaciones de decimales para describir los valores, por lo que 0x10000 es "hex diez mil" o 0xF0000 como "hexadecimal eff-cero mil". Si bien esto de ninguna manera es eficiente, por lo general nos funciona. Preferiría agrupar con 4 dígitos en lugar de 3, pero me falta el deseo de buscar o crear un nombre. ;-)

nunca he encontrado ninguna convención de nombres, aparte de la lectura de cada dígito.

-1

"¿Existe una forma más elegante de traducir hexadecimal al inglés?"

Un sistema que desarrollé para divertirme, creo que es mucho más elegante, aunque no muy práctico para comunicarme con nadie, excepto quizás conmigo. :)

http://www.castedo.com/binspeak/

La estructura hablada es el modelo de la forma en que hablan base de 10 números en Inglés, sin embargo lo hice lenguaje agnóstico por lo que no se vuelva a usar palabras en inglés existente, por lo que no está realmente en Inglés.

La página web le permite probar diferentes sistemas de sonido (consulte la sección Resimbolizar) para que 8 suene más o menos como la palabra en inglés "ocho" seleccionando los sonidos "e" y "t" para reemplazar mi elección predeterminada de sonidos "u" y "s".

Cuestiones relacionadas