เหตุใดคอมพิวเตอร์จึงใช้ระบบเลขฐานสอง (0,1)


31

เหตุใดคอมพิวเตอร์จึงใช้ระบบเลขฐานสอง (0,1) เหตุใดพวกเขาจึงไม่ใช้ระบบหมายเลข Ternary (0,1,2) หรือระบบหมายเลขอื่นแทน


9
นี่เป็นคำถามเกี่ยวกับวิศวกรรมไฟฟ้า เห็นได้ชัดว่าประตูไบนารี่นั้นง่ายต่อการติดตั้ง IIRC คอมพิวเตอร์ที่ประกอบไปด้วยคอมพิวเตอร์บางส่วนได้ถูกสร้างขึ้นในบางจุด
Yuval Filmus

7
คุณทำวิจัยอะไร เมื่อฉันพิมพ์ชื่อคำถามของคุณลงใน Google ฉันจะได้รับผลการค้นหาที่ให้คำตอบสำหรับคำถามของคุณ นอกจากนี้บทความ Wikipedia เกี่ยวกับเลขฐานสองและรหัสเลขฐานสองก็มีคำอธิบายสั้น ๆ เราคาดหวังให้คุณทำการวิจัยจำนวนมากก่อนที่จะถามที่นี่และดูเหมือนว่าฉันจะไม่ได้ทำการวิจัยพื้นฐานแม้แต่ก่อนที่จะถาม การค้นหา Google และ Wikipedia นั้นน้อยมาก
DW

ฐานขนาดใหญ่ไม่ได้เป็นประโยชน์โดยรวม
กราฟิลส์

@ ราฟาเอล: Ternary ทำ
Mooing Duck

2
ฉันจะใส่ความคิดเห็นนี้เพราะมีคำตอบที่ยอมรับแล้ว เป็นการยากเป็นพิเศษในการสร้างอุปกรณ์อิเล็กทรอนิกส์ที่แยกแยะได้อย่างน่าเชื่อถือในหมู่สิบค่าเพราะความอดทนในการผลิต มันค่อนข้างง่ายในการสร้างอุปกรณ์อิเล็กทรอนิกส์ที่แยกแยะระหว่างสองค่า ดังนั้นคำตอบสั้น ๆ ว่าคอมพิวเตอร์ใช้แทน binary สำหรับความน่าเชื่อถือ ฉันได้เขียนคำตอบโดยละเอียดเพิ่มเติมสำหรับผู้ที่อาจสนใจ: bbrown.kennesaw.edu/papers/why_binary.html
Bob Brown

คำตอบ:


31

เนื่องจากเราอยู่ในวิทยาการคอมพิวเตอร์ฉันจะตอบด้วยวิธีนี้: ไม่

เราหมายถึงอะไรโดย "คอมพิวเตอร์" มีคำจำกัดความมากมาย แต่ในวิทยาการคอมพิวเตอร์เป็นวิทยาศาสตร์ที่พบมากที่สุดคือเครื่องทัวริง

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

{0,1}{a,b}{0,1,2}{,}

0001001↑↑↑↓↑↑↓

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

แต่มันกลับกลายเป็นว่านารีก็เพียงพอแล้วเช่นกัน คุณสามารถเข้ารหัส 9 เป็น 111111111 ได้ซึ่งไม่ได้มีประสิทธิภาพมากนัก แต่มีพลังการคำนวณเหมือนกัน

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

ประเด็นก็คือ 0s และ 1s เป็นปัญหาเฉพาะของฮาร์ดแวร์โดยสมบูรณ์ การเข้ารหัสที่คุณใช้ไม่เกี่ยวข้องกับวิทยาศาสตร์คอมพิวเตอร์โดยเฉพาะนอกเขตข้อมูลย่อยเช่นระบบปฏิบัติการหรือเครือข่าย


สิ่งที่เกี่ยวกับการเข้ารหัสอินพุตในเครื่อง 2 เคาน์เตอร์ ดูเหมือนว่าจะมีความสำคัญ คุณแน่ใจหรือไม่ว่าคุณสามารถยกเลิกปัญหาการเข้ารหัสอย่างรุนแรงได้ และฉันก็แทบจะไม่เห็นด้วยว่าความซับซ้อนนั้นไม่ใช่ประเด็น แต่แลมบ์ดาแคลคูลัสเป็นวิธีที่เหมาะสมในการแก้ไขหรือไม่?
babou

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

1
"ดังนั้นฉันสามารถสร้างเครื่องทัวริงด้วยตัวอักษรอินพุต" ฉันคิดว่าคุณควรเขียน "อักษรเทป" ที่นี่แทน "อักษรตัวอักษร" ส่วนที่น่าสนใจคือสิ่งที่ใช้สำหรับการคำนวณและไม่ใช่สำหรับการป้อนข้อมูล นอกจากนี้ฉันไม่เห็นด้วยกับความเป็นน้ำหนึ่งใจเดียวกัน TM ที่มีอักษรตัวอักษร unary เกือบจะไร้ประโยชน์เพราะเทปนั้นคงที่
Simon S

เกี่ยวกับประโยคสุดท้าย: การออกแบบและศึกษาคอมพิวเตอร์ฮาร์ดแวร์และสถาปัตยกรรมเป็นส่วนหนึ่งของวิทยาศาสตร์คอมพิวเตอร์
Kaveh

2
คุณอาจต้องการเพิ่มจุดที่เกิดจากเอกภาพไปยังไบนารี่เพื่อลดขนาดของตัวเลขของคุณไปเป็นลอการิทึมซึ่งเป็นการปรับปรุงที่จริงจังในขณะที่การไปไกลกว่านั้นจะไม่ได้รับมากนัก
reinierpost

23

สิ่งอื่น ๆ ที่ควรพิจารณา:

nnkk<n1+1+...+1=nnlog2n2kk1+2+...+n+12=nnlog10nlog1020.3nn

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

truefalse


9

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

โปรดทราบว่ามีบางสถานที่ในคอมพิวเตอร์ที่จัดเก็บข้อมูลหรือสื่อสารโดยใช้สถานะมากกว่าสองสถานะต่อองค์ประกอบ ในอาเรย์หน่วยความจำแฟลชเซลล์หน่วยความจำหลายร้อยหรือหลายพันอาจรับบริการโดยวงจรตรวจจับระดับหนึ่งชุด การใช้สี่ระดับต่อเซลล์มากกว่าสองเมื่อเก็บข้อมูลจำนวนหนึ่งอาจมากกว่าขนาดของวงจรตรวจจับระดับสามเท่า แต่จะลดลงครึ่งหนึ่งของจำนวนหน่วยความจำที่ต้องการ เมื่อสื่อสารผ่าน 100-base-T หรืออีเธอร์เน็ตที่เร็วกว่าค่าใช้จ่ายของวงจรที่จำเป็นในการตรวจสอบระดับสัญญาณหลายสายบนสายเคเบิลน่าจะถูกแคระโดยค่าใช้จ่ายไม่ว่าจะต้องใช้สายเคเบิลที่มีสายมากกว่าหรือใช้สายเคเบิลที่สามารถจัดการได้มากขึ้น การเปลี่ยนสัญญาณต่อวินาทีโดยไม่มีระดับการบิดเบือนที่ยอมรับไม่ได้


9

มีคอมพิวเตอร์ควอนตัมที่มีอยู่ในห้องปฏิบัติการวิจัยที่ใช้ q-bit เป็นหน่วยพื้นฐานของข้อมูลที่สามารถเป็นได้ทั้ง 0 และ 1 พร้อมกัน
http://en.wikipedia.org/wiki/Quantum_computer

นอกจากนี้ยังมีคอมพิวเตอร์ควอนตัมแบบไตรภาคที่สร้างตามการอ้างอิงนี้http://en.wikipedia.org/wiki/Ternary_computer

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

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

xZ


3
แต่พวกเขายังคงใช้ระบบเลขฐานสองในการคำนวณควอนตัมสถานะของการทับซ้อนนั้นไม่ใช่ค่าที่เป็นไปได้อันดับสาม การโยนตัวอย่างการคำนวณควอนตัมออกมาก็ไม่เป็นประโยชน์กับคำถามที่ถาม
lPlant

ฉันไม่รู้เกี่ยวกับสิ่งนี้ ..
Ali786

"q-bit เป็นหน่วยพื้นฐานของข้อมูลที่สามารถเป็นได้ทั้ง 0 และ 1 พร้อมกัน" นี่เป็นเรื่องไร้สาระ Qubits นั้นมีความแตกต่างจากบิตทั่วไปโดยที่มันเป็นตัวแทนของค่าที่ไม่ต่อเนื่อง (ซับซ้อน) พวกมันหาที่เปรียบมิได้เพื่อจุดประสงค์ในทางปฏิบัติทั้งหมด
จิ้งจกไม่ต่อเนื่อง

3

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

วงจรนี้เป็นพื้นฐานสำหรับอุปกรณ์ลอจิกเช่น AND, NAND, OR, XOR และฟังก์ชั่นอื่น ๆ ฟังก์ชั่น NAND เป็นพื้นฐานที่สุดของ Building Block อุปกรณ์ลอจิกเหล่านี้ประกอบเข้าด้วยกันเพื่อให้โปรเซสเซอร์ที่ยังคงอยู่ในสถานะที่สามารถคาดเดาได้และทรานซิสเตอร์จำนวนมากสามารถบรรจุในพื้นที่ขนาดเล็กเพื่อให้ใช้งานได้ตามต้องการ

ทรานซิสเตอร์สามารถจัดการหลายสถานะหรือแตกต่างกันได้ แต่เมื่อทำงานในลักษณะนั้นพวกเขาไม่ได้ผลิตคอมพิวเตอร์แบบ "ดิจิทัล" แบบดั้งเดิม - พวกเขาไม่มีแนวโน้มที่จะอยู่ในสถานะที่สามารถคาดเดาได้และมีแนวโน้มที่จะรบกวนการอิ่มตัวความผันผวน ฯลฯ พวกเขามีการใช้งานที่ จำกัด ในแง่ของความสามารถในการคำนวณ op-amps อาจถูกพิจารณาว่าเป็นคอมพิวเตอร์แอนะล็อก


-3

เราใช้ไบนารี่ (1,0) เพียงเพราะเราไม่มีเทคโนโลยีในการสร้าง "สวิทช์" ที่สามารถไว้วางใจได้มากกว่าสองสถานะที่เป็นไปได้ (คอมพิวเตอร์ควอนตัมไม่ได้วางจำหน่ายอย่างแน่นอนในขณะนี้) ระบบเลขฐานสองได้รับเลือกเพียงเพราะมันค่อนข้างง่ายที่จะแยกแยะสถานะของกระแสไฟฟ้าจากที่ไม่มีกระแสไฟฟ้าโดยเฉพาะเมื่อทำงานกับการเชื่อมต่อหลายล้านล้านครั้ง และใช้ฐานตัวเลขอื่น ๆ ในระบบนี้ไร้สาระเพราะระบบจะต้องแปลงระหว่างพวกเขาอย่างต่อเนื่อง นั่นคือทั้งหมดที่มีให้มัน


2
นี่เป็นเรื่องจริง แต่ไม่ใช่ทั้งหมดรวมอยู่ในคำตอบที่มีอยู่แล้วใช่ไหม
David Richerby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.