十六进制的发音
对于那些不熟悉节目《硅谷》的人来说,这项挑战的灵感来自这样的交流(YouTube):
Kid -
Here it is: Bit… soup. It’s like alphabet soup, BUT… it’s ones and zeros
instead of letters.
Erlich Bachman -
{silence}
Kid -
‘Cause it’s binary? You know, binary’s just ones and zeroes.
Erlich Bachman -
Yeah, I know what binary is. Jesus Christ, I memorized the hexadecimal
times tables when I was fourteen writing machine code. Okay? Ask me
what nine times F is. It’s fleventy-five. I don’t need you to tell me what binary is.
应该注意的是,从技术上讲,0x9 * 0xF = 0x87
不是'fifty-five',而是一个重要的问题-您实际上如何在对话中发音十六进制?并不是说oh ex eff eff
舌头容易流掉,那我们该怎么办?这是我们将要遵循的方便的发音图表。
A = ay A0 = atta-
B = bee B0 = bibbity-
C = cee C0 = city-
D = dee D0 = dickety-
E = ee E0 = ebbity-
F = eff F0 = fleventy-
我们可以将4位数的十六进制数字分成两组,每组两个,然后从上表确定发音,以及数字的常见英语发音。因此,例如0xFFAB
,我们将得到Fleventy-eff bitey atta-bee
。
如果包含数字,例如0xF5AB
,您将打印Fleventy-five bitey atta-bee
。另外,如果数字以一组开头,则应使用其“十”音。例如,0x5FAA
将变为Fifty-eff bitey atta-ay
。如果您有类似的东西0x1FAC
,那就是Effteen bitey atta-cee
。但是,如果将此规则用于0x1AF4
,a-teen
可能会混淆eighteen
,因此您必须在前面加上Y。因此,正确的输出将是Yayteen bitey fleventy-four
在的情况下,我们会忽略零并打印0xD0F4
而不是Dickety-zero bitey fleventy-four
这么做Dickety-bitey fleventy-four
。
连字符只能出现在两组中,即,除非第一组只有一个单词,否则bitey不应与连字符连接到任一组!所以0x04F4
会four-bitey fleventy-four
,但0x44F4
会forty-four bitey fleventy-four
。正如trichoplax所说,bitey仅在跟随一个整数后才被连字符。
要全面了解它如何工作,请查看下面的示例I / O。
目的
创建一个将十六进制字符串作为输入或函数参数的程序或函数,并产生其发音。输出必须具有适当的大写字母。您可以假设此数字的长度始终为4。
示例I / O
"0xFFFF" -> "Fleventy-eff bitey fleventy-eff"
"0x0000" -> "Zero"
"0x0010" -> "Ten"
"0x0100" -> "One-bitey zero"
"0x1110" -> "Eleven-bitey ten"
"0xBEEF" -> "Bibbity-ee bitey ebbity-eff"
"0x9999" -> "Ninety-nine bitey ninety-nine"
"0xA1B2" -> "Atta-one bitey bibbity-two"
"0x3C4F" -> "Thirty-cee bitey forty-eff"
"0x17AB" -> "Seventeen-bitey atta-bee"
"0x1AFB" -> "Yayteen-bitey fleventy-bee"
"0xAAAA" -> "Atta-ay bitey atta-ay"
这是code-golf,因此最少的字节数获胜。