การออกเสียง Hex
สำหรับผู้ที่ไม่ได้ฝึกหัดในการแสดง Silicon Valley ความท้าทายนี้ได้รับแรงบันดาลใจจากการแลกเปลี่ยนที่เป็นเช่นนี้ ( 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
ไม่ใช่ 'fleventy-5' แต่นี่เป็นคำถามที่สำคัญ - คุณจะออกเสียง 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 กลุ่มออกเป็นสองกลุ่มและกำหนดการออกเสียงจากตารางด้านบนรวมถึงการออกเสียงภาษาอังกฤษทั่วไปสำหรับตัวเลข ดังนั้นสำหรับตัวอย่างที่เราจะได้รับ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
ดังนั้นคุณต้องย่อหน้าวายดังนั้นการส่งออกที่ถูกต้องจะเป็นYayteen bitey fleventy-four
ในกรณีของ0xD0F4
แทนการทำเราจะไม่สนใจพิมพ์ศูนย์และDickety-zero bitey fleventy-four
Dickety-bitey fleventy-four
ยัติภังค์ควรปรากฏภายในกลุ่มของทั้งสองเช่นว่ากัดไม่ควรเชื่อมต่อกับกลุ่มที่มียัติภังค์เว้นแต่กลุ่มแรกเป็นเพียงหนึ่งคำ! ดังนั้น0x04F4
จะมีfour-bitey fleventy-four
แต่จะ0x44F4
forty-four bitey fleventy-four
ตามที่ไตรคลอโรแมกซ์กล่าวไว้ว่าการกัดควรจะใช้เครื่องหมายขีดคั่นเมื่อทำตามจำนวนรอบเท่านั้น
หากต้องการดูวิธีการทำงานอย่างละเอียดโปรดดูตัวอย่าง 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"
นี่คือโค้ดกอล์ฟดังนั้นจำนวนไบต์ที่น้อยที่สุดจึงจะชนะ