Hexの発音
ショーシリコンバレーを始めていない人にとって、この課題は次のようなやり取りに触発されます(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
、「15」ではなく、これは重要な質問を提起することに注意する必要があります-あなたは実際に会話でhexをどのように発音しますか?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つの長さの16進数を2つの2つのグループに分割し、上記の表から発音と、数字の一般的な英語の発音を決定できます。したがって、例0xFFAB
では、を取得しFleventy-eff bitey atta-bee
ます。
などの数字が含まれている場合は、0xF5AB
印刷しますFleventy-five bitey atta-bee
。また、番号がグループの1つを開始する場合、「10」の発音を使用する必要があります。たとえば、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
。
ハイフンは2つのグループ内にのみ表示する必要があります。つまり、最初のグループが1語のみである場合を除き、biteyをハイフンでどちらのグループにも接続しないでください。そう0x04F4
だろうfour-bitey fleventy-four
、しかし0x44F4
でしょうforty-four bitey fleventy-four
。以下のようセンモウヒラムシが言ったラウンド数を以下のとき、biteyにのみhyphenedする必要があります。
これがどのように機能するかを包括的に見るには、以下のI / Oの例をご覧ください。
目的
入力または関数の引数として16進文字列を取り、その発音を生成するプログラムまたは関数を作成します。出力には適切な大文字が必要です。この数値の長さは常に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なので、最小バイト数が勝ちます。