Tại sao máy tính sử dụng hệ thống số nhị phân (0,1)?


31

Tại sao máy tính sử dụng hệ thống số nhị phân (0,1)? Tại sao họ không sử dụng Hệ thống số Ternary (0,1,2) hoặc bất kỳ hệ thống số nào khác thay thế?


9
Đây là một câu hỏi về kỹ thuật điện. Rõ ràng cổng nhị phân dễ thực hiện hơn. IIRC một số máy tính dựa trên ternary đã được xây dựng tại một số điểm.
Yuval Filmus

7
Bạn đã làm nghiên cứu gì? Khi tôi nhập tiêu đề câu hỏi của bạn vào Google, tôi sẽ nhận lại kết quả tìm kiếm cung cấp một số câu trả lời cho câu hỏi của bạn. Ngoài ra, bài viết Wikipedia về số nhị phânmã nhị phân có một lời giải thích ngắn. Chúng tôi hy vọng bạn thực hiện một số lượng đáng kể nghiên cứu trước khi hỏi ở đây và có vẻ như bạn chưa thực hiện ngay cả nghiên cứu cơ bản trước khi hỏi. Tìm kiếm Google và Wikipedia là tối thiểu.
DW

Các cơ sở lớn hơn hóa ra không hữu ích về tổng thể.
Raphael

@Raphael: Ternary đã làm
Vịt Mooing

2
Tôi sẽ đặt nó như một bình luận vì đã có câu trả lời được chấp nhận. Rất khó để chế tạo các thiết bị điện tử phân biệt đáng tin cậy giữa mười giá trị vì dung sai sản xuất. Việc xây dựng các thiết bị điện tử phân biệt giữa hai giá trị là tương đối dễ dàng. Vì vậy, câu trả lời ngắn gọn là máy tính sử dụng biểu diễn nhị phân cho độ tin cậy . Tôi đã viết một câu trả lời chi tiết hơn cho những người có thể quan tâm: bbrown.kennesaw.edu/ con / why_binary.html
Bob Brown

Câu trả lời:


31

Vì chúng tôi ở Khoa học máy tính, tôi sẽ trả lời theo cách này: họ không.

"Máy tính" nghĩa là gì? Có rất nhiều định nghĩa, nhưng trong khoa học máy tính với tư cách là một khoa học, phổ biến nhất là máy Turing.

Một máy turing được xác định bởi một số khía cạnh: bộ trạng thái, bảng chuyển tiếp, bộ tạm dừng và quan trọng cho cuộc thảo luận của chúng tôi, một bảng chữ cái. Bảng chữ cái này đề cập đến các ký hiệu mà máy có thể đọc làm đầu vào và nó có thể ghi vào băng của nó. (Bạn có thể có các bảng chữ cái đầu vào và băng khác nhau, nhưng bây giờ chúng ta đừng lo lắng về điều đó.)

Vì vậy, tôi có thể tạo một máy Turing với bảng chữ cái đầu vào hoặc hoặc hoặc . Nó không thành vấn đề. Thực tế là, tôi có thể sử dụng bất kỳ bảng chữ cái nào tôi chọn để mã hóa dữ liệu.{0,1}{a,b}{0,1,2}{,}

Vì vậy, tôi có thể nói rằng là 9 hoặc tôi có thể nói rằng là 9. Không thành vấn đề, vì chúng chỉ là biểu tượng chúng ta có thể phân biệt.0001001↑↑↑↓↑↑↓

Bí quyết là nhị phân là đủ. Bất kỳ chuỗi bit nào cũng có thể được hiểu là một số, vì vậy bạn có thể chuyển đổi từ nhị phân sang bất kỳ hệ thống nào khác và quay lại.

Nhưng, hóa ra unary là quá đủ. Bạn có thể mã hóa 9 thành 111111111. Điều này không đặc biệt hiệu quả, nhưng nó có sức mạnh tính toán tương tự.

Mọi thứ trở nên điên rồ hơn khi bạn nhìn vào các mô hình tính toán xen kẽ, như phép tính Lambda. Tại đây, bạn có thể xem số là hàm. Trong thực tế, bạn có thể xem mọi thứ là các chức năng. Mọi thứ được mã hóa không phải là bit, 0 và 1, mà là các hàm toán học đóng không có trạng thái có thể thay đổi. Xem các chữ số của Giáo hội để biết cách bạn có thể thực hiện các số theo cách này.

Vấn đề là, 0 và 1 là một vấn đề hoàn toàn cụ thể về phần cứng và sự lựa chọn là tùy ý. Mã hóa nào bạn đang sử dụng không liên quan đặc biệt đến khoa học máy tính, bên ngoài một số trường con như hệ điều hành hoặc mạng.


Điều gì về mã hóa đầu vào trong máy 2 quầy. Nó có vẻ quan trọng. Bạn có chắc chắn có thể loại bỏ các vấn đề mã hóa triệt để như vậy không? Và tôi hầu như không đồng ý rằng sự phức tạp là một vấn đề; Nhưng liệu lambda có phải là một cách thích hợp để giải quyết nó?
babou

Tôi sẽ thừa nhận rằng có những vấn đề phức tạp khi bạn sử dụng unary. Nhưng sự lựa chọn của nhị phân vs ternary hoặc bất cứ điều gì như thế là hơi tùy tiện. Nó không giống như sự lựa chọn của mã hóa không thành vấn đề, nhưng không có luật nào quy định tại sao chúng ta sử dụng một mã cụ thể. Nó được quyết định chủ yếu bởi sự thuận tiện hoặc bởi các yêu cầu phần cứng, phần nào nằm ngoài khoa học tính toán.
jmite

1
"Vì vậy, tôi có thể tạo ra một máy Turing với bảng chữ cái đầu vào". Tôi nghĩ bạn nên viết "bảng chữ cái băng" ở đây thay vì "bảng chữ cái đầu vào". Phần thú vị là những gì được sử dụng cho tính toán và không cho đầu vào. Hơn nữa, tôi không đồng ý với unary là đủ. Một TM với bảng chữ cái băng đơn phương là gần như vô dụng, bởi vì băng là không đổi.
Simon S

Về câu cuối cùng: thiết kế và nghiên cứu phần cứng và kiến ​​trúc máy tính cũng là một phần của khoa học máy tính.
Kaveh

2
Bạn có thể muốn thêm điểm chuyển từ đơn nhất sang nhị phân làm giảm kích thước số của bạn vào logarit của chúng, đây là một cải tiến nghiêm trọng, trong khi tiếp tục không đạt được nhiều như vậy (chỉ là một yếu tố tuyến tính).
rebierpost

23

Một số điều khác cần xem xét:

Một phần lý do của việc sử dụng hệ thống số nhị phân là vì đó là hệ thống số cơ sở thấp nhất có thể biểu diễn các số trong logarit, thay vì tuyến tính, không gian. Để phân biệt duy nhất giữa số khác nhau trong unary, độ dài trung bình của các biểu diễn phải tỷ lệ với ít nhất , vì chỉ có một chuỗi có độ dài trong đó ; . Để phân biệt duy nhất giữa số khác nhau trong nhị phân, độ dài trung bình của biểu diễn phải tỷ lệ với ít nhất , vì có số nhị phân có độ dài ;nnkk<n1+1+...+1=nnlog2n2kk1+2+...+n+12=n . Chọn một cơ sở lớn hơn cải thiện yêu cầu không gian bởi một yếu tố không đổi; cơ sở 10 giúp bạn có số với độ dài đại diện trung bình là , đó là lần độ dài trung bình của một đại diện hai cơ sở cho tất cả . Sự khác biệt giữa nhị phân và đơn nguyên là lớn hơn nhiều; trong thực tế, nó là một chức năng của . Bạn nhận được rất nhiều bằng cách chọn nhị phân trên unary; bạn sẽ nhận được ít hơn nhiều bằng cách chọn một cơ sở cao hơn, bằng cách so sánh.nlog10nlog1020.3nn

Có một sự thật với ý tưởng rằng việc triển khai logic kỹ thuật số sẽ dễ dàng hơn nếu chúng ta chỉ phải phân biệt hai trạng thái. Tín hiệu điện là tương tự và, như vậy, có thể được hiểu là đại diện cho nhiều trạng thái riêng biệt như bạn muốn ... nhưng bạn cần phần cứng chính xác hơn (do đó đắt tiền và khó tính) để phân biệt đáng tin cậy hơn các trạng thái trên cùng một phạm vi. Điều này cho thấy lựa chọn một cơ sở càng thấp càng tốt.

Một xem xét tiềm năng quan trọng khác là logic đã được hiểu theo cách cổ điển liên quan đến hai giá trị riêng biệt: và . Bây giờ, chúng ta có logic logic hơn thế này, nhưng rất nhiều toán học và khoa học vẫn dựa trên các khái niệm khá nền tảng. Khi bạn cho rằng máy tính được sử dụng để tính toán và logic đó rất quan trọng cho việc tính toán, nó cho thấy có sự hỗ trợ tốt cho ít nhất hai trạng thái riêng biệt ... nhưng logic không thực sự đòi hỏi nhiều hơn thế.truefalse


9

Một trong những lý do lớn mà hầu hết các mạch máy tính sử dụng hai trạng thái là số lượng mạch cần thiết để phân biệt giữa n cấp điện áp khác nhau tỷ lệ thuận với n -1. Do đó, có ba trạng thái rõ ràng sẽ đòi hỏi gấp đôi số mạch trên mỗi tín hiệu và có bốn trạng thái sẽ đòi hỏi gấp ba lần. Tăng gấp ba lượng mạch trong khi chỉ tăng gấp đôi lượng thông tin sẽ thể hiện sự mất hiệu quả.

Lưu ý rằng có một số vị trí trong máy tính nơi thông tin được lưu trữ hoặc truyền đạt bằng cách sử dụng nhiều hơn hai trạng thái cho mỗi phần tử. Trong một mảng bộ nhớ flash, hàng trăm hoặc hàng nghìn ô nhớ có thể được phục vụ bởi một bộ mạch cảm biến mức. Sử dụng bốn cấp độ cho mỗi ô thay vì hai khi lưu trữ một lượng thông tin nhất định có thể nhiều hơn gấp ba lần kích thước của mạch cảm biến mức, nhưng sẽ cắt giảm một nửa số lượng ô nhớ cần thiết. Khi giao tiếp với Ethernet 100-T-cơ sở hoặc nhanh hơn, chi phí mạch cần thiết để phát hiện nhiều mức tín hiệu trên cáp có thể sẽ bị giảm do chi phí phải sử dụng cáp có nhiều dây hơn hoặc sử dụng cáp có thể xử lý nhiều hơn chuyển đổi tín hiệu mỗi giây mà không có mức độ biến dạng không thể chấp nhận.


9

Có tồn tại các máy tính lượng tử trong các phòng thí nghiệm nghiên cứu sử dụng q-bit làm đơn vị thông tin cơ bản có thể đồng thời là 0 và 1.
http://en.wikipedia.org/wiki/Quantum_computer

Cũng đã có các máy tính lượng tử ternary được xây dựng theo tài liệu tham khảo này http://en.wikipedia.org/wiki/Ternary_computer

Vì vậy, thực sự có thể xây dựng các thiết bị điện toán thay thế không dựa vào hệ thống số nhị phân. Ví dụ, hệ thống cáp quang sử dụng 0 cho bóng tối và hai phân cực ánh sáng trực giao khác nhau là 1 và -1.

Lý do tại sao tôi đề cập đến những điều này là vì tôi muốn chỉ ra rằng mặc dù số nhị phân là đủ cho máy tính, có những hệ thống số thay thế có thể được sử dụng cho máy tính.

Theo nghĩa này, hệ thống số nhị phân rất tốt, chúng ta có thể mã hóa tất cả các số nguyên bằng cách sử dụng biểu diễn số của cơ số. http: // en.wikipedia.org/wiki/Radix Các giá trị này có thể đại diện cho mã ASCII A = 0x41 = 01000001 hoặc giá trị có thể đại diện cho lệnh máy nop = 0x90 = 0x10010000. xZ


3
Nhưng họ vẫn đang sử dụng một hệ thống nhị phân, trong điện toán lượng tử, trạng thái chồng chất không phải là giá trị thứ ba. Ngoài ra, việc đưa ra một ví dụ điện toán lượng tử là không hữu ích cho câu hỏi được hỏi.
lPlant

Tôi không biết về điều này ..
Ali786

"q-bit là đơn vị thông tin cơ bản có thể đồng thời là 0 và 1." Thật vô nghĩa. Qubits về cơ bản khác với các bit thông thường, ở chỗ chúng đại diện cho một giá trị không phức tạp (phức tạp). Họ là không thể so sánh cho tất cả các mục đích thực tế.
Thằn lằn rời rạc

3

Trung tâm của sức mạnh xử lý máy tính kỹ thuật số là một bóng bán dẫn, hoạt động giống như một công tắc. Bằng cách tăng dòng điện tại "cổng" của công tắc, nó cho phép dòng điện chạy giữa "bộ thu" và "bộ phát" - công tắc được bật. Transitor sẽ được thiết kế để hoạt động ở một trong hai chế độ - bật hoàn toàn hoặc tắt hoàn toàn ('bão hòa') - với sự phân chia rõ ràng về những trạng thái đó. Các bóng bán dẫn có thể chuyển đổi giữa hai trạng thái một cách nhanh chóng, sẽ vẫn ở trạng thái với các lỗi rất hạn chế.

Mạch này tạo thành cơ sở cho các thiết bị logic, như AND, NAND, OR, XOR và các chức năng khác. Hàm NAND là cơ bản nhất của các khối xây dựng. Các thiết bị logic này được lắp ráp để cung cấp bộ xử lý vẫn ở trạng thái có thể dự đoán được và rất nhiều bóng bán dẫn có thể được đóng gói trong một không gian nhỏ để cung cấp chức năng cần thiết.

Một bóng bán dẫn có thể quản lý nhiều hoặc nhiều trạng thái khác nhau, nhưng khi hoạt động theo cách đó chúng không tạo ra các máy tính "kỹ thuật số" thông thường - chúng không có xu hướng ở trạng thái có thể dự đoán được và chúng dễ bị nhiễu, bão hòa, thẩm thấu, v.v. họ có những ứng dụng hạn chế về khả năng tính toán. Op-amps có thể được coi là máy tính tương tự.


-3

Chúng tôi chỉ sử dụng nhị phân (1,0) vì hiện tại chúng tôi không có công nghệ để tạo "công tắc" có thể giữ đáng tin cậy hơn hai trạng thái có thể. (Máy tính lượng tử không được bán chính xác tại thời điểm này.) Hệ thống nhị phân chỉ được chọn vì khá dễ phân biệt sự hiện diện của dòng điện với sự vắng mặt của dòng điện, đặc biệt là khi làm việc với hàng nghìn tỷ kết nối như vậy. Và sử dụng bất kỳ cơ sở số nào khác trong hệ thống này vô lý, bởi vì hệ thống sẽ cần phải liên tục chuyển đổi giữa chúng. Thats tất cả để có nó.


2
Điều này đúng nhưng không phải tất cả đã được bao gồm trong các câu trả lời hiện có?
David Richerby
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.