Hex phát âm
Đối với những người không quen với chương trình Thung lũng Silicon, thử thách này được lấy cảm hứng từ một cuộc trao đổi diễn ra như thế này ( 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.
Cần lưu ý rằng về mặt kỹ thuật, 0x9 * 0xF = 0x87
không phải là 'fleventy-five', nhưng điều này mang đến một câu hỏi quan trọng - làm thế nào bạn thực sự phát âm hex trong cuộc trò chuyện? Nó không giống như oh ex eff eff
chảy ra khỏi lưỡi một cách dễ dàng, vậy chúng ta nên làm gì? Đây là một biểu đồ phát âm tiện dụng, chúng tôi sẽ theo dõi.
A = ay A0 = atta-
B = bee B0 = bibbity-
C = cee C0 = city-
D = dee D0 = dickety-
E = ee E0 = ebbity-
F = eff F0 = fleventy-
Chúng ta có thể chia một số hex dài 4 thành hai nhóm và xác định cách phát âm từ bảng trên, cũng như cách phát âm tiếng Anh thông dụng cho các số. Vì vậy, ví dụ 0xFFAB
, chúng tôi sẽ nhận được Fleventy-eff bitey atta-bee
.
Nếu một số được bao gồm, chẳng hạn như 0xF5AB
, bạn sẽ in Fleventy-five bitey atta-bee
. Ngoài ra, nếu một số bắt đầu một trong các nhóm, bạn nên sử dụng cách phát âm "hàng chục". Ví dụ, 0x5FAA
sẽ trở thành Fifty-eff bitey atta-ay
. Trong trường hợp bạn có một cái gì đó như thế 0x1FAC
, điều này sẽ được Effteen bitey atta-cee
. Nhưng, nếu quy tắc này được sử dụng cho 0x1AF4
, a-teen
có thể bị nhầm lẫn eighteen
, vì vậy bạn phải đăng ký Y. Vì vậy, đầu ra chính xác sẽ làYayteen bitey fleventy-four
Trong trường hợp 0xD0F4
, thay vì làm Dickety-zero bitey fleventy-four
, chúng tôi sẽ bỏ qua số không và in Dickety-bitey fleventy-four
.
Các dấu gạch nối chỉ nên xuất hiện trong các nhóm của hai, tức là không nên kết nối với một nhóm có dấu gạch nối trừ khi nhóm đầu tiên chỉ có một từ! Vì vậy, 0x04F4
sẽ được four-bitey fleventy-four
, nhưng 0x44F4
sẽ được forty-four bitey fleventy-four
. Như trichoplax đã nói, cắn chỉ nên được cường điệu khi theo số tròn.
Để có cái nhìn toàn diện về cách thức hoạt động của nó, hãy xem ví dụ I / O bên dưới.
Mục tiêu
Tạo một chương trình hoặc hàm sẽ lấy một chuỗi thập lục phân làm đầu vào hoặc một đối số hàm và tạo ra cách phát âm của nó. Đầu ra phải có viết hoa đúng. Bạn có thể cho rằng độ dài của số này sẽ luôn là 4.
Ví dụ 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"
Đây là mã golf , vì vậy số byte ít nhất sẽ thắng.