Mengucapkan Hex
Bagi Anda yang belum tahu tentang pertunjukan Silicon Valley, tantangan ini terinspirasi oleh pertukaran yang berlangsung seperti ini ( 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.
Perlu dicatat bahwa secara teknis, 0x9 * 0xF = 0x87
bukan 'empat puluh lima', tetapi ini memunculkan pertanyaan penting - bagaimana Anda benar-benar mengucapkan hex dalam percakapan? Ini tidak seperti oh ex eff eff
mengalir dari lidah dengan mudah, jadi apa yang harus kita lakukan? Berikut bagan pengucapan yang berguna yang akan kami ikuti.
A = ay A0 = atta-
B = bee B0 = bibbity-
C = cee C0 = city-
D = dee D0 = dickety-
E = ee E0 = ebbity-
F = eff F0 = fleventy-
Kita dapat membagi nomor hex 4-panjang menjadi dua kelompok dua, dan menentukan pengucapan dari tabel di atas, serta pengucapan bahasa Inggris umum untuk angka. Jadi, sebagai contoh 0xFFAB
, kita akan dapatkan Fleventy-eff bitey atta-bee
.
Jika nomor disertakan, seperti 0xF5AB
, Anda akan mencetak Fleventy-five bitey atta-bee
. Juga, jika angka memulai salah satu grup, Anda harus menggunakan pelafalan "puluhan". Sebagai contoh, 0x5FAA
akan menjadi Fifty-eff bitey atta-ay
. Dalam kasus di mana Anda memiliki sesuatu seperti 0x1FAC
, ini akan menjadi Effteen bitey atta-cee
. Tapi, jika aturan ini digunakan untuk 0x1AF4
, a-teen
bisa dikacaukan eighteen
, jadi Anda harus menambahkan Y. Jadi, output yang benar adalahYayteen bitey fleventy-four
Dalam hal 0xD0F4
, alih-alih melakukan Dickety-zero bitey fleventy-four
, kita akan mengabaikan nol dan mencetak Dickety-bitey fleventy-four
.
Tanda hubung hanya boleh muncul dalam kelompok dua, yaitu gigitan tidak boleh dihubungkan ke salah satu kelompok dengan tanda hubung kecuali kelompok pertama hanya satu kata! Memang 0x04F4
akan four-bitey fleventy-four
, tetapi 0x44F4
akan forty-four bitey fleventy-four
. Seperti yang dikatakan trichoplax , gigitan seharusnya dihipnotis saat mengikuti angka bulat.
Untuk tampilan komprehensif tentang cara kerjanya, lihat contoh I / O di bawah ini.
Objektif
Buat program atau fungsi yang akan mengambil string heksadesimal sebagai input atau argumen fungsi dan menghasilkan pengucapan itu. Output harus memiliki kapitalisasi yang tepat. Anda dapat mengasumsikan bahwa panjang angka ini akan selalu 4.
Contoh 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"
Ini adalah kode-golf , jadi paling tidak jumlah byte yang menang.