Mengapa Komputer Menggunakan Sistem Angka Biner (0,1)?

31

Mengapa Komputer Menggunakan Sistem Angka Biner (0,1)? Mengapa mereka tidak menggunakan Sistem Angka Ternary (0,1,2) atau sistem angka lainnya?

Rai Ammad Khan
sumber
9
Ini adalah pertanyaan tentang teknik elektro. Rupanya gerbang biner lebih mudah diimplementasikan. IIRC beberapa komputer berbasis ternary telah dibangun di beberapa titik.
Yuval Filmus
7
Penelitian apa yang telah Anda lakukan? Ketika saya mengetik judul pertanyaan Anda ke Google, saya mendapatkan kembali hasil pencarian yang memberikan beberapa jawaban untuk pertanyaan Anda. Juga, artikel Wikipedia tentang angka - angka biner dan kode biner memiliki penjelasan singkat. Kami berharap Anda melakukan sejumlah besar penelitian sebelum bertanya di sini, dan bagi saya sepertinya Anda belum melakukan penelitian dasar sebelum bertanya. Pencarian Google dan Wikipedia adalah minimal.
DW
Basis yang lebih besar ternyata tidak bermanfaat secara keseluruhan.
Raphael
@ Raphael: Ternary lakukan
Mooing Duck
2
Saya akan meletakkan ini sebagai komentar karena sudah ada jawaban yang diterima. Sangat sulit untuk membangun perangkat elektronik yang dapat membedakan antara sepuluh nilai karena toleransi manufaktur. Relatif mudah untuk membangun perangkat elektronik yang membedakan antara dua nilai. Jadi, jawaban singkatnya adalah komputer menggunakan representasi biner untuk keandalan . Saya telah menulis jawaban yang lebih terperinci untuk mereka yang mungkin peduli: bbrown.kennesaw.edu/papers/why_binary.html
Bob Brown

Jawaban:

31

Karena kita berada di Ilmu Komputer, saya akan menjawab seperti ini: mereka tidak.

Apa yang kita maksud dengan "komputer?" Ada banyak definisi, tetapi dalam ilmu komputer sebagai ilmu, yang paling umum adalah mesin Turing.

Mesin turing didefinisikan oleh beberapa aspek: set keadaan, tabel transisi, set berhenti, dan penting untuk diskusi kita, alfabet. Alfabet ini mengacu pada simbol-simbol yang dapat dibaca mesin sebagai input, dan bahwa ia dapat menulis ke kasetnya. (Anda dapat memiliki berbagai alfabet input dan tape, tetapi jangan khawatir tentang itu untuk saat ini.)

Jadi, saya bisa membuat mesin Turing dengan alfabet masukan , atau , atau , atau . Itu tidak masalah. Faktanya adalah, saya bisa menggunakan alfabet apa saja yang saya pilih untuk menyandikan data.{ a , b } { 0 , 1 , 2 } { , }{0,1}{a,b}{0,1,2}{,}

Jadi, saya dapat mengatakan bahwa adalah 9, atau saya dapat mengatakan bahwa adalah 9. Tidak masalah, karena itu hanya simbol yang dapat kita bedakan.0001001↑↑↑↓↑↑↓

Kuncinya adalah bahwa biner sudah cukup. Urutan bit apa pun dapat diartikan sebagai angka, sehingga Anda dapat mengonversi dari biner ke sistem lain dan kembali.

Tapi, ternyata unary juga sudah cukup. Anda dapat menyandikan 9 sebagai 111111111. Ini tidak terlalu efisien, tetapi memiliki kekuatan komputasi yang sama.

Hal-hal menjadi lebih gila ketika Anda melihat ke dalam model komputasi alternatif, seperti kalkulus Lambda. Di sini, Anda dapat melihat angka sebagai fungsi. Bahkan, Anda dapat melihat semuanya sebagai fungsi. Hal-hal dikodekan bukan sebagai bit, 0s dan 1s, tetapi sebagai fungsi matematika tertutup tanpa keadaan bisa berubah. Lihat angka - angka Gereja untuk bagaimana Anda dapat melakukan angka dengan cara ini.

Intinya adalah bahwa, 0s dan 1s adalah masalah khusus perangkat keras, dan pilihannya arbitrer. Pengkodean apa yang Anda gunakan tidak terlalu relevan dengan ilmu komputer, di luar beberapa subbidang seperti sistem operasi atau jaringan.

Ya ampun
sumber
Bagaimana dengan pengkodean input pada mesin 2-penghitung. Sepertinya itu penting. Apakah Anda yakin dapat mengabaikan masalah penyandian yang begitu radikal? Dan saya hampir tidak akan setuju bahwa kompleksitas adalah masalah non; tetapi apakah lambda kalkulus merupakan cara yang tepat untuk mengatasinya?
babou
Saya akui ada masalah kompleksitas saat Anda menggunakan unary. Tetapi pilihan biner vs terner atau sesuatu seperti itu agak sewenang-wenang. Ini tidak seperti pilihan pengkodean tidak masalah, tetapi tidak ada hukum yang mendikte mengapa kita menggunakan yang tertentu. Sebagian besar ditentukan oleh kenyamanan atau persyaratan perangkat keras, yang agak di luar ilmu komputasi.
jmite
1
"Jadi, saya bisa membuat mesin Turing dengan alfabet masukan". Saya pikir Anda harus menulis "alfabet tape" di sini alih-alih "alfabet masukan". Bagian yang menarik adalah apa yang digunakan untuk perhitungan dan bukan untuk input. Selanjutnya saya tidak setuju dengan unary cukup. TM dengan alfabet tape unary hampir tidak berguna, karena rekaman itu konstan.
Simon S
Mengenai kalimat terakhir: desain dan studi tentang perangkat keras dan arsitektur komputer juga merupakan bagian dari ilmu komputer.
Kaveh
2
Anda mungkin ingin menambahkan titik bahwa beralih dari unary ke binary mengurangi ukuran angka Anda ke logaritma mereka, yang merupakan peningkatan serius, sementara melangkah lebih jauh tidak mendapatkan sebanyak (hanya faktor linear).
reinierpost
23

Beberapa hal lain yang perlu dipertimbangkan:

Bagian dari alasan untuk menggunakan sistem bilangan biner adalah karena sistem bilangan terendah-basa yang dapat mewakili angka-angka dalam ruang logaritmik, bukan linear. Untuk secara unik membedakan antara angka yang berbeda di unary, panjang rata-rata representasi harus sebanding dengan setidaknya , karena hanya ada satu string panjang mana ; . Untuk secara unik membedakan antara angka yang berbeda dalam biner, panjang rata-rata representasi harus sebanding dengan setidaknya , karena ada angka biner panjang ;n k k < n 1 + 1 + . . . + 1 = n n log 2 n 2 k k 1 + 2 + . . . + n + 1nnkk<n1+1+...+1=nnlog2n2kknlog10nlog1020.3nn1+2+...+n+12=n . Memilih pangkalan yang lebih besar meningkatkan kebutuhan ruang dengan faktor konstan; basis 10 memberi Anda angka dengan panjang representasi rata-rata , yaitu kali panjang rata-rata representasi basis dua untuk semua . Perbedaan antara biner dan unary jauh lebih besar; sebenarnya, ini adalah fungsi dari . Anda mendapatkan banyak dengan memilih biner daripada unary; Anda mendapatkan lebih sedikit dengan memilih basis yang lebih tinggi, dengan perbandingan.nlog10nlog1020.3nn

Ada beberapa kebenaran pada gagasan bahwa lebih mudah untuk mengimplementasikan logika digital jika kita hanya perlu membedakan dua keadaan. Sinyal listrik adalah analog dan, dengan demikian, dapat diinterpretasikan untuk mewakili sebanyak mungkin keadaan terpisah yang Anda inginkan ... tetapi Anda membutuhkan perangkat keras yang lebih tepat (karenanya mahal dan rewel) untuk secara andal membedakan lebih banyak keadaan dalam rentang yang sama. Ini menyarankan untuk memilih pangkalan serendah mungkin.

Pertimbangan lain yang berpotensi penting adalah bahwa logika telah dipahami secara klasik untuk melibatkan dua nilai berbeda: dan . Sekarang, kita memiliki logika yang lebih bagus dari ini, tetapi banyak matematika dan sains masih bertumpu pada konsep dasar yang cukup. Ketika Anda menganggap bahwa komputer digunakan untuk menghitung, dan logika itu penting untuk perhitungan, itu menunjukkan memiliki dukungan yang baik untuk setidaknya dua keadaan yang berbeda ... tetapi logika tidak benar-benar memerlukan lebih dari itu.f a l s etruefalse

Patrick87
sumber
9

Salah satu alasan besar mengapa sebagian besar sirkuit komputer menggunakan dua keadaan adalah bahwa jumlah sirkuit yang diperlukan untuk membedakan antara n level tegangan yang berbeda kira-kira sebanding dengan n -1. Akibatnya, memiliki tiga keadaan yang dapat dilihat akan membutuhkan sirkuit dua kali lebih banyak per sinyal, dan memiliki empat keadaan akan membutuhkan tiga kali lebih banyak. Tiga kali lipat jumlah sirkuit sementara hanya menggandakan jumlah informasi akan mewakili hilangnya efisiensi.

Perhatikan bahwa ada beberapa tempat di komputer tempat informasi disimpan atau dikomunikasikan menggunakan lebih dari dua status per elemen. Dalam array memori flash, ratusan atau ribuan sel memori dapat dilayani oleh satu set rangkaian sensor level. Menggunakan empat level per sel daripada dua ketika menyimpan sejumlah informasi tertentu mungkin lebih dari tiga kali lipat ukuran sirkuit pengindraan level, tetapi akan memotong setengah jumlah sel memori yang diperlukan. Ketika berkomunikasi dengan lebih dari 100-basis-T atau Ethernet yang lebih cepat, biaya sirkuit yang diperlukan untuk mendeteksi beberapa level sinyal pada kabel kemungkinan akan dikerdilkan dengan biaya apakah harus menggunakan kabel dengan lebih banyak kabel atau menggunakan kabel yang dapat menangani lebih banyak transisi sinyal per detik tanpa tingkat distorsi yang tidak dapat diterima.

supercat
sumber
9

Memang ada komputer kuantum di laboratorium penelitian yang menggunakan q-bit sebagai unit dasar informasi yang dapat berupa 0 dan 1 secara bersamaan.
http://en.wikipedia.org/wiki/Quantum_computer

Ada juga komputer kuantum ternary yang dibangun sesuai referensi ini http://en.wikipedia.org/wiki/Ternary_computer

Jadi, memang mungkin untuk membangun perangkat komputasi alternatif yang tidak bergantung pada sistem angka biner. Sistem serat optik misalnya menggunakan 0 untuk polarisasi cahaya orthoganal gelap dan dua berbeda seperti 1 dan -1.

Alasan mengapa saya menyebutkan hal-hal ini adalah karena saya ingin menunjukkan bahwa meskipun angka biner cukup untuk komputasi, ada sistem angka alternatif yang dapat digunakan untuk komputasi.

Sistem bilangan biner bagus dalam arti ini kita dapat menyandikan semua bilangan bulat dengan menggunakan representasi angka radix. http: // en.wikipedia.org/wiki/Radix Nilai-nilai ini dapat mewakili kode ASCII A = 0x41 = 01000001, atau nilainya bisa mewakili instruksi mesin nop = 0x90 = 0x10010000. xZ

Gary D.
sumber
3
Tetapi mereka masih menggunakan sistem biner, dalam komputasi kuantum keadaan superposisi bukanlah nilai ketiga yang mungkin. Juga membuang contoh komputasi kuantum tidak membantu pertanyaan yang diajukan.
lPlant
Saya tidak tahu tentang ini ..
Ali786
"q-bit sebagai unit dasar informasi yang dapat berupa 0 dan 1 secara bersamaan." Ini tidak masuk akal. Qubit pada dasarnya berbeda dari bit normal, dalam arti mereka mewakili nilai non-diskrit (kompleks). Mereka tak tertandingi untuk semua tujuan praktis.
Kadal diskrit
3

Di jantung kekuatan pemrosesan komputer digital adalah sebuah transistor, yang bekerja seperti saklar. Dengan menaikkan arus di "gerbang" sakelar, ia memungkinkan arus mengalir di antara "kolektor" dan "pemancar" - sakelar dihidupkan. Transistor akan dirancang untuk beroperasi dalam salah satu dari dua mode - sepenuhnya aktif atau sepenuhnya mati ('jenuh') - dengan pembagian yang jelas tentang apa negara-negara tersebut. Transistor dapat beralih di antara dua keadaan dengan cepat, akan tetap di negara dengan kesalahan yang sangat terbatas.

Sirkuit ini membentuk dasar untuk perangkat logika, seperti AND, NAND, OR, XOR dan fungsi lainnya. Fungsi NAND menjadi yang paling dasar dari blok bangunan. Perangkat logika ini dirakit untuk menyediakan prosesor yang tetap dalam kondisi yang dapat diprediksi, dan banyak transistor dapat dikemas dalam ruang kecil untuk menyediakan fungsionalitas yang dibutuhkan.

Transistor dapat mengelola banyak, atau berbagai kondisi, tetapi ketika beroperasi dengan cara itu mereka tidak menghasilkan komputer "digital" konvensional - mereka cenderung tidak berada dalam kondisi yang dapat diprediksi dan mereka cenderung mengalami gangguan, saturasi, osilasi, dll - jadi mereka memiliki aplikasi terbatas dalam hal kemampuan komputasi. Op-amp dapat dianggap komputer analog.

peeldog
sumber
-3

Kami hanya menggunakan biner (1,0) karena saat ini kami tidak memiliki teknologi untuk membuat "sakelar" yang dapat dipercaya menyimpan lebih dari dua kemungkinan keadaan. (Komputer kuantum tidak benar-benar dijual saat ini.) Sistem biner dipilih hanya karena cukup mudah untuk membedakan keberadaan arus listrik dari tidak adanya arus listrik, terutama ketika bekerja dengan triliunan koneksi seperti itu. Dan menggunakan basis nomor lain dalam sistem ini konyol, karena sistem perlu terus-menerus mengkonversi di antara mereka. Itu semua yang ada untuk itu.

Irfan Khan
sumber
2
Ini benar tetapi bukankah semuanya sudah termasuk dalam jawaban yang ada?
David Richerby