ทำไมฐานแปดและเลขฐานสิบหก? คอมพิวเตอร์ใช้ทศนิยมฐานสองและมนุษย์


16

ทำไมเราถึงใช้ฐานอื่น ๆ ที่ไม่ใช่ฐานสอง (สำหรับคอมพิวเตอร์) หรือทศนิยม (สำหรับมนุษย์)

คอมพิวเตอร์กลายเป็นตัวแทนของพวกเขาในรูปแบบไบนารีและมนุษย์ต้องการที่จะได้รับการแทนทศนิยมของพวกเขา ทำไมไม่ยึดฐานทั้งสองนี้


ฉันมักจะคิดว่าไม่มีเหตุผลที่แน่ชัดที่จะใช้เลขฐานสิบหกหรืออะไรก็ตามที่มี glyphs ในปริมาณสูงสำหรับตัวเลข ยิ่งกว่านั้นฉันมักจะคิดว่าตัวแทนไบนารีสามารถแทนที่สัญลักษณ์อื่น ๆ สำหรับกรณีทั่วไปในอนาคต
Mikhail V

@MikhailV การแสดงเลขฐานสิบหกเป็นจำนวนมากกระชับกว่าการเป็นตัวแทนไบนารี ฉันจะบอกว่านั่นเป็นเหตุผลที่ค่อนข้างแข็งในการใช้ glyphs มากกว่าพูด 2
Ben Jones

คำตอบ:


19

เลขฐานแปด (ฐาน -8) และเลขฐานสิบหก (ฐาน -16) เป็นการประนีประนอมที่สมเหตุสมผลระหว่างการใช้คอมพิวเตอร์ระบบไบนารี (ฐาน -2) และระบบฐานสิบ (ฐาน 10) ที่มนุษย์ส่วนใหญ่ใช้

คอมพิวเตอร์ไม่ดีที่มีหลายสัญลักษณ์ดังนั้นฐาน 2 (ที่คุณมีเพียง 2 สัญลักษณ์) จึงเหมาะสำหรับพวกเขาในขณะที่สตริงที่ยาวขึ้นตัวเลขที่มีตัวเลขมากกว่าจะมีปัญหาน้อยกว่า มนุษย์ดีมากที่มีสัญลักษณ์หลายอย่าง แต่ก็ไม่ดีในการจดจำสตริงที่ยาวขึ้น

Octal และ hex ใช้ความได้เปรียบของมนุษย์ที่สามารถทำงานกับสัญลักษณ์มากมายในขณะที่มันยังสามารถแปลงกลับไปกลับมาระหว่างไบนารีได้อย่างง่ายดายเพราะเลขฐานสิบหกทุกตัวแทนเลขฐานสอง 4 หลัก ( ) และทุกเลขฐานแปดแทน 3 ( 8 = 2 3 ) ฉันคิดว่า hex ชนะเหนือ octal เพราะมันสามารถใช้แทนตัวเลขและ 16/32/64 บิตได้อย่างง่ายดาย16=248=23


8
เป็นตัวอย่างให้พิจารณาค่า Hex ของ RGB มันง่ายที่จะจำได้ว่าสีขาวคือ #FFFFFF มันยากที่จะจำได้ว่าสีขาวคือ 16777215 ในรูปทศนิยม คุณต้องการลบองค์ประกอบสีแดงของ # EF439A หรือไม่ คุณได้รับ # 00439A เช่นคุณเพิ่งเปลี่ยนตัวเลขสองหลักแรกเป็น 0 ในทศนิยมคุณต้องลบ 15663104 โชคดีที่จำได้
jmite

3
เพื่อความถูกต้องสีในรูปทศนิยมจะใช้อเนกประสงค์และสีขาวจะเป็น (255, 255, 255) เราต่อค่าเลขฐานสิบหกเข้าด้วยกันเพราะมันเป็นเลข 2 หลักเสมอ เราสามารถทำเช่นเดียวกันกับทศนิยมใช้ 0 แล้วจะเป็นสีขาว 255255255 แทน 16777215.
Spidey

@Spyy แน่นอน ยิ่งไปกว่านั้นสมองของฉันสามารถแยกวิเคราะห์อะไรบางอย่างเช่น (127,255,255) ได้ง่ายขึ้นและฉันก็สามารถเดาได้ว่าสีจะออกมาเป็นยังไงเพราะฉันสามารถเห็นสัดส่วนของปริมาณหมึกและไม่ต้องคำนวณเป็นเลขฐานสิบหกในหัวของฉัน
มิคาอิล V

13

เราใช้มันเพื่อความสะดวกและกระชับ

Hex และ Oct เป็นตัวแทนที่ได้รับการบีบอัดอย่างยอดเยี่ยมของไบนารี ฐานสิบหกเหมาะสมอย่างยิ่งกับรูปแบบที่อยู่หน่วยความจำแบบย่อ ทุกตุลาคมหลักตรงแมปไปยัง 3 บิตไบนารีและทุกเลขฐานสิบหกถึง 4 บิตบิต นี่เป็นผลมาจากฐาน (8 และ 16) เป็นกำลังของ 2 ( และ2 4 ) ตัวอย่างเช่นผมสามารถเขียนไบนารี01101001เป็นฐานสิบหก69หรือถ้าผมขยายมันมีศูนย์นำเป็นตุลาคม15123240110100169151

ดังนั้นคุณต้องมีหน่วยความจำ 64 บิต คุณสามารถดูได้ทั้ง 64 บิตไบนารี่หรือรับมันรวมกับเลขฐานสิบหก 16 หลัก บ่อยครั้งที่คุณไม่จำเป็นต้องเปรียบเทียบที่อยู่สองสามแห่งเพื่อดูว่าเป็นที่อยู่เดียวกันหรือที่อยู่ติดกัน คุณค่อนข้างจะดูที่ 64 บิตหรือ 16 หลัก?


5
Octal มีประโยชน์ในการไม่เพิ่มสัญลักษณ์ตัวเลขใด ๆ และอาจใช้งานได้จริงในวันที่มีอักขระ 6 บิต (และคำที่ไม่ใช้พลังงานทั่วไปสองคำเช่น 12 บิต PDP-8, 18 บิต PDP- 1 [การลงทะเบียนที่อยู่สำหรับ CDC 6x00], 36-bit PDP-6, ตัวถูกดำเนินการลงทะเบียน 60- บิตสำหรับ CDC 6x00) การย้ายไปยังออคเต็ตอักขระ / ไบต์และคำที่มีพลังแห่งสองคำทำให้เลขฐานสิบหกน่าดึงดูดยิ่งขึ้น
Paul A. Clayton

คุณอยากดู 64 บิตหรือ 16 หลักหรือไม่ " แน่นอนฉันจะดูบิตที่จัดกลุ่ม แต่ไม่ได้อยู่ในสัญกรณ์ "01" ซึ่งน่าเกลียดและทำร้ายดวงตาของฉัน และฉันก็ไม่ได้บอกด้วยซ้ำว่า hex ทำร้ายดวงตาของฉันมากแค่ไหน
Mikhail V

@MikhailV: คุณหมายถึงอะไรโดย "สัญกรณ์" 01 "? คุณบอกว่าคุณอยากดูบิต แต่ไม่ใช่ใน "" 01 "สัญกรณ์" - คุณจะใช้สัญลักษณ์ใด ถ้าคุณพูดว่า hex ทำร้ายดวงตาของคุณฉันไม่สามารถช่วยคิดได้ว่าคุณอาจฝึกฝนเรื่องทศนิยมมากกว่า hex (ที่จริงแล้วฉันคิดว่ามันเป็นเซ็กส์ (เดี่ยว) ที่บอกว่าไม่ดีต่อดวงตาของคุณ แต่นั่นเป็นอีกเรื่องหนึ่ง)
PJTraill

ฉันชอบสิ่งนี้กับคำตอบที่ได้รับความนิยมมากขึ้นของ dtech ในขณะนี้เพราะมันเน้นการใช้งานง่าย แต่คุณอาจชี้ให้เห็นว่าไม่เพียง แต่การเป็นตัวแทนที่สั้นกว่าเท่านั้น แต่ยังมีความหลากหลายของตัวเลขที่มากขึ้น ฐานแปด
PJTraill

@ PaulA.Clayton: คะแนนดี; ข้อได้เปรียบอีกประการหนึ่งของ PDP-11 คือแม้ว่าคำ (หน่วยปฏิบัติการตามธรรมชาติ) คือ 16 บิตรหัสการเรียนการสอนส่วนใหญ่จะลดลงอย่างเป็นธรรมชาติในการทำงานแบบ 2 บิตและกลุ่ม 3 บิต 3 กลุ่มที่เป็นตัวแทนหมายเลขทะเบียนและโหมดที่อยู่ 8 ความเป็นไปได้ของสองข้อโต้แย้ง รายการโปรดของฉัน: 014747 = MOV - (PC), - (PC) ซึ่งเติมหน่วยความจำด้วยตัวเอง (ถ้าอนุญาต)
PJTraill


2

บทนำ

ดังที่กล่าวแล้วโดยคำตอบอื่น ๆ อาจมีสัญลักษณ์ที่แตกต่างกันสำหรับวัตถุประสงค์และข้อ จำกัด ที่แตกต่างกัน สัญกรณ์เป็นการเข้ารหัสตามลำดับตัวอักษรและเรารู้จากการศึกษาอัลกอริธึมและโครงสร้างข้อมูลว่ามีหลายวิธีที่เราสามารถเข้ารหัสแนวคิดนามธรรมรายการหรือชุดขึ้นอยู่กับสิ่งที่เราต้องการจะทำกับมัน . ในกรณีนี้มันเป็นวิธีที่สะดวกที่สุด

เมื่อพิจารณาถึงการแสดงตัวเลขจะใช้เช่นเดียวกัน ภายในคอมพิวเตอร์ทุกอย่างเป็นเลขฐานสองในระดับต่ำสุดถึงแม้ว่าการแทนคนแปลกหน้าสามารถใช้สำหรับบางโปรแกรม

นอกคอมพิวเตอร์เราใช้การแสดงที่มนุษย์เข้าใจได้ทุกชนิดขึ้นอยู่กับความสะดวกของมนุษย์เกี่ยวกับประเภทของมูลค่าที่แสดง การเป็นตัวแทนแบบไบนารี่มักจะยาวเกินไปและไม่มีโครงสร้างที่จะอ่านและเขียนได้ง่ายดังนั้นจึงเป็นที่มาของเลขฐานสิบหกหรือฐานแปด ตัวเลือกอาจเกี่ยวข้องกับวิธีการจัดโครงสร้างข้อมูลในคำไบนารีซึ่งไม่จำเป็นต้องมีไว้เพื่อแสดงตัวเลข

แต่เมื่อพิจารณาเฉพาะตัวเลขเช่นการแทนตัวเลขมันก็คุ้มค่าที่จะดูระบบการแทนตัวเลขอื่น ๆ เพื่อทำความเข้าใจว่า ปัจจัยสำคัญคือสรีรวิทยานิสัยและความสะดวกสบาย ความสะดวกสบายเป็นปัจจัยนำที่สร้างความหลากหลายขึ้นอยู่กับบริบทของการใช้งาน

ดูกว้างขึ้น

มันน่าแปลกใจที่คำตอบทั้งหมดพิจารณาเฉพาะทศนิยมและฐาน 2n ระบบส่วนใหญ่เป็นเลขฐานสองแปดและ heaxdecimal

ร่างกายของคำถามดูเหมือนจะไม่ จำกัด คอมพิวเตอร์และมนุษย์ยังคงใช้ระบบการคำนวณอื่น ๆ อยู่หลายประการ บางส่วนใช้ในคอมพิวเตอร์เช่นเมื่อต้องจัดการกับจำนวนเต็มยาว (ไม่พูดถึงตัวเลขที่ไม่ใช่จำนวนเต็ม )

ข้อสังเกตแรกคือเมื่อผู้คนนับเป็นหลักพันหรือหลักล้านหน่วยนี่ยังถือว่าเป็นทศนิยมเพราะสิ่งเหล่านี้เป็นพลังของ 10 ดังนั้นเราอาจสงสัยว่าทำไมเลขฐานแปดหรือฐานสิบหกจึงไม่ควรพิจารณาเพียงแค่ความแปรผันของเลขฐานสอง เหตุผลหนึ่งที่เป็นไปได้อาจเป็นจำนวนของสัญลักษณ์ที่ใช้เพื่อแสดงตัวเลข (แม้ว่านั่นจะเป็นปัญหาที่โต้แย้งได้เช่นที่เราจะเห็นกับระบบอื่น ๆ )

จากนั้นเกี่ยวกับมนุษย์ที่พวกเขาใช้ระบบหลายแห่งในฐานที่ 5 เรียกว่า ระบบ quinary ที่จริงแล้วระบบเหล่านี้ส่วนใหญ่มีสองฐานระบบที่สองเป็น 2 หรือ 4 สลับกับฐานห้าซึ่งทำให้เทียบเท่ากับฐาน 10 (ฐานสิบ) หรือฐาน 20 (vigesimal) เดาว่ามาจากไหน :)

ระบบฐานสองเหล่านี้เรียกว่าระบบสองทางหรือระบบสี่ภาค quinary บริสุทธิ์นั้นไม่ค่อยได้ใช้

เลขโรมันอาจถูกมองว่าเป็นระบบสองค่า (ซึ่งเป็นข้อบ่งชี้ว่าจะทำเลขคณิตกับพวกมันได้อย่างไร) ลูกคิดจีนและญี่ปุ่นใช้ทวิภาค Quadri-quinary ถูกใช้โดย Mayas

เหตุผลในการใช้ระบบอาจมีมากมาย หนึ่งในเหตุผลที่ดีคือมันเป็นงานออกแบบในพื้นที่เครื่องแรกและตอนนี้ผู้คนคุ้นเคยกับมันแล้ว ตัวอย่างเช่นบางคนอาจสงสัยว่าทำไมคนที่พูดภาษาอังกฤษยังคงใช้ระบบการคิดเลขที่แปลกประหลาดอย่างยิ่งเมื่อพยายามวัดระยะทาง คุณสามารถโต้แย้งได้ว่ามันเป็นเรื่องของหลาย ๆ หน่วยไม่ใช่การนับเลข แต่นั่นเป็นคำพูดที่อ่อนแอมาก ตัวเลขส่วนใหญ่จะใช้ในการวัดสิ่งต่าง ๆ

เหตุผลอื่นในการรักษาระบบคือความสะดวกในบริบทที่กำหนด อาจมีการแลกเปลี่ยนระหว่างจำนวนของสัญลักษณ์ที่แตกต่างกันหรือตำแหน่งบนลูกคิดและจำนวนของสัญลักษณ์ที่เกิดขึ้นจำเป็นต้องใช้ในรูปแบบจำนวนมากพอสมควร ฐาน 2 ทำงานกับ 2 สัญลักษณ์ที่แตกต่างกัน แต่มีจำนวนมากที่เกิดขึ้นซึ่งอาจไม่สะดวกสำหรับการแสดงวัสดุ ฐาน Vigesimal 20 จะต้องมีสัญลักษณ์ยี่สิบตัวและตารางการคูณที่ใหญ่มากซึ่งผู้คนจำไม่ได้ แต่ระบบทวิภาคหรือระบบควอด - ควอดสามารถจัดการได้มากขึ้นโดยเฉพาะการสร้างลูกคิด ระบบ quinary ที่บริสุทธิ์น่าจะดีกว่านี้ แต่มันขัดแย้งกับนิสัยและสัญชาตญาณทางสรีรวิทยา และมันก็ดีเสมอที่จะสามารถใช้นิ้วมือของเรานับด้วยเมื่อเราไม่รู้อะไรเลย

แต่นั่นไม่ใช่ทั้งหมด

ระบบที่เก่ามากและพบได้บ่อยคือระบบsexagesimal ที่ใช้วัดเวลาและมุม (แต่เรารู้ว่ามันเกี่ยวข้องกันผ่านการหมุนโลก) ใช้ฐาน 60 แต่ไม่ใช้สัญลักษณ์ 60 เนื่องจากมีจำนวนมากเกินไป ดังนั้นจึงต้องอาศัยระบบอื่นเพื่อเป็นตัวแทนของ synbols (เช่นระบบทศนิยม)

วงกลมสามารถแบ่งออกเป็น 6 ส่วนที่สอดคล้องกับมุม 60 องศาซึ่งง่ายที่สุดในการสร้างด้วยรูปสามเหลี่ยมด้านเท่า จากนั้นแต่ละองศาจะมีส่วนโค้ง 60 นาทีแต่ละส่วนแบ่งใน 60 วินาที

ตามวิกิพีเดีย

มันมีต้นกำเนิดมาจาก Sumerians โบราณในสหัสวรรษที่ 3 ก่อนคริสตกาลมันถูกส่งผ่านไปยังชาวบาบิโลนโบราณและยังคงใช้ - ในรูปแบบที่ปรับเปลี่ยน - สำหรับการวัดเวลามุมและพิกัดทางภูมิศาสตร์

เมื่อพิจารณาที่มามันเป็นระบบที่ค่อนข้างสะดวกในเวลาที่คณิตศาสตร์แทบจะไม่เข้าสู่วัยเด็ก ไม่เพียง แต่เป็นมุม60⁰ที่ง่ายต่อการวาดเท่านั้น แต่ยังมีปัจจัยอีก 60 อย่างที่ทำให้สามารถหารด้วยจำนวนเต็มได้หลายวิธีโดยไม่มีเศษเหลือ

ในทางสรีรวิทยาสามารถเชื่อมโยงกับระบบ duodecimal-quinary, ฐาน 12 และ 5 ฐาน 12 สะดวกเพราะสามารถใช้เมื่อนับนิ้วกระดูก 4 นิ้วด้วยนิ้วมือเดียวกัน จากนั้นนิ้วของมืออีกข้างก็ให้องค์ประกอบ quinary และ12×5=60.

แต่มีวิธีการอื่น ๆ ที่จะได้รับถึง 60 เช่นระบบเลขฐานยี่สิบ-ternary ของชาวบาบิโลน

ทำไมเรายังคงใช้ระบบ sexagesimal ฉันเดาว่าเราเพิ่งคุ้นเคยกับมันและเราอาจมีปัญหาที่ขัดแย้งกันมากเกินไปสำหรับการเปลี่ยนแปลงที่จะได้รับการพิสูจน์อย่างครบถ้วน

เป็นที่น่าสนใจที่จะทราบว่ามีการทำงานร่วมกันระหว่างระบบการกำหนดหมายเลขและระบบยูนิต แต่สิ่งนี้เป็นสิ่งที่คาดหวังเนื่องจากการวัดเป็นบทบาทที่สำคัญสำหรับตัวเลข นี้เป็นที่เห็นได้ชัดในความขัดแย้งระหว่างทศนิยมและไบนารีตัวชี้วัดสำหรับขนาดหน่วยความจำ


3
อาจเป็นเพราะชื่อกล่าวว่า "ทำไมต้องเป็นเลขฐานสิบหกฐานแปดหรือเลขฐานสิบหก"
Fizz

1
@RespawnedFluff คำพูดที่ดี จากนั้นคำถามของฉันอาจขยายไปถึงคำถาม ฉันไม่ได้ตั้งใจจะพูดคำตอบอื่น ๆ ที่ไม่น่าสนใจ แต่มุมมองที่กว้างขึ้นแสดงให้เห็นถึงแรงจูงใจที่เป็นไปได้สำหรับระบบที่หลากหลาย สนับสนุนบางคำตอบที่ได้รับไปแล้ว แรงจูงใจพื้นฐานคือนิสัยและความสะดวกสบาย แต่ความสะดวกนั้นขึ้นอยู่กับบริบทเป็นอย่างมาก การแบ่งขั้วขนาดหน่วยความจำเป็นสิ่งที่สร้างขึ้นเมื่อเร็ว ๆ นี้และมันแสดงให้เห็นถึงจุด
babou

2
ความกะทัดรัดเป็นคุณธรรมคำถามนี้ไม่จำเป็นต้องมีคำประพันธ์ 1,000 คำหรือส่วนใหญ่เกี่ยวข้องกันมาก คุณไม่สามารถตอบคำถามได้
dtech

"เมื่อผู้คนนับเป็นพัน, ... , นี่ยังถือว่าเป็นทศนิยมเพราะสิ่งเหล่านี้คือพลังของ 10 ดังนั้นเราอาจสงสัยว่าทำไมเลขฐานแปดหรือฐานสิบหกไม่ควรถูกพิจารณาว่าเป็นเพียงการแปรผันของเลขฐานสอง" เนื่องจากพันเป็นเพียงการละทิ้ง ตัวเลขโดยทั่วไปคือ 0 สิ่งนี้แตกต่างจาก base-1000 ซึ่งจะใช้ 1,000 สัญลักษณ์ที่แตกต่างกันสำหรับทุกหมายเลข 0-999
dtech

1
@dtech ขอบคุณ ฉันลืมคำนำหรือบทสรุปที่ฉันมักจะมีต่อคำตอบ และสิ่งนี้ทำให้ฉันไปยังจุดสำคัญโดยไม่สนใจคำตอบอื่น ๆ ไม่ใช่ทุกคำไบนารีที่ตั้งใจจะเป็นตัวเลข การพยายามรับมุมมองที่กว้างขึ้นเป็นสิ่งที่ช่วยค้นหาปัญหา
babou

-1

คอมพิวเตอร์เข้าใจตัวเลขไบนารี่และไบนารี่น้ำหนักของตัวเลขอยู่ที่ 2 ดังนั้นจำนวนหลักที่ใช้แทนตัวเลขอาจมีขนาดใหญ่ขึ้นอยู่กับจำนวน

สมมติว่า 64 ในรูปทศนิยมสามารถแสดงได้ 7 บิตในขณะที่จำนวน 5000 เป็นตัวแทนเราต้องใช้ 13 บิต

ระบบเลขฐานแปดและเลขฐานสิบหกเป็นวิธีที่กะทัดรัดในการแสดงเลขฐานสอง


2
คำตอบนี้เป็น[What advantage is there to using a base different from ten or (a power of) two?]อย่างไร - หรือคุณตีความอีกWhy not stick to [bases 2 and 10]?อย่างไร
greybeard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.