Bilgisayarlar Neden İkilik Sayı Sistemini Kullanıyor (0,1)?


31

Bilgisayarlar Neden İkilik Sayı Sistemini Kullanıyor (0,1)? Neden Üçlü Sayı Sistemi'ni (0,1,2) veya bunun yerine başka bir sayı sistemini kullanmıyorlar?


9
Bu elektrik mühendisliği ile ilgili bir soru. Görünüşe göre ikili kapılar uygulamak daha kolaydır. IIRC bazı üçlü tabanlı bilgisayar bir noktada inşa edilmiştir.
Yuval Filmus,

7
Hangi araştırmayı yaptın? Sorunuzun başlığını Google’a yazdığımda, sorunuza birkaç yanıt veren arama sonuçlarını geri alıyorum. Ayrıca, ikili sayılar ve ikili kod hakkındaki Wikipedia makalesinin kısa bir açıklaması vardır. Buraya sormadan önce önemli miktarda araştırma yapmanızı bekleriz ve bana sormadan önce temel araştırma yapmamışsınız gibi görünüyor. Google ve Wikipedia'da arama yapmak minimum düzeydedir.
DW

Büyük bazlar, genel olarak faydalı olmadı.
Raphael

@Raphael: Üçlü yaptım
Mooing Ördek

2
Bunu bir yorum olarak koyacağım çünkü zaten kabul edilmiş bir cevap var. Üretim toleransları nedeniyle on değer arasında güvenilir bir şekilde ayrım yapan elektronik cihazlar oluşturmak olağanüstü zordur. İki değer arasında ayrım yapan elektronik cihazlar oluşturmak nispeten kolaydır. Yani kısa cevap, bilgisayarların güvenilirlik için ikili gösterimi kullanmasıdır . İlgilenenler
Bob Brown

Yanıtlar:


31

Bilgisayar Bilimi’nde olduğumuz için şu şekilde cevap vereceğim: onlar cevap vermiyor.

"Bilgisayar" derken ne demek istiyoruz? Birçok tanım var ama bilgisayar biliminde bir bilim olarak en yaygın olanı Turing makinesi.

Bir turing makinesi çeşitli yönleriyle tanımlanır: durum seti, geçiş tablosu, durma seti ve tartışmamız için önemli olan bir alfabe. Bu alfabe, makinenin girdi olarak okuyabileceği ve kasetine yazabileceği sembolleri ifade eder. (Farklı girdi ve teyp alfabeleriniz olabilir, ancak şimdilik bunun için endişelenmeyin.)

Böylece, Turing makinesini veya veya giriş alfabesiyle veya . Önemli değil. Gerçek şu ki, verileri kodlamak için seçtiğim herhangi bir alfabe kullanabilirim.{0,1}{a,b}{0,1,2}{,}

Yani, 9 olduğunu söyleyebilirim veya 9 olduğunu söyleyebilirim. değil, çünkü sadece ayırt edebileceğimiz semboller.0001001↑↑↑↓↑↑↓

İşin püf noktası, ikili sistemin yeterli olmasıdır. Herhangi bir bit dizisi bir sayı olarak yorumlanabilir, böylece ikili sistemden diğer sistemlere ve geriye dönüştürebilirsiniz.

Ancak, aynı zamanda tekdüze ortaya çıkıyor yeterli. 9'u 111111111 olarak kodlayabilirsiniz. Bu özellikle verimli değil, ancak aynı hesaplama gücüne sahip.

Lambda matematiği gibi alternatif hesaplama modellerine baktığınızda işler daha da deliriyor. Burada sayıları işlev olarak görüntüleyebilirsiniz. Aslında, her şeyi işlev olarak görüntüleyebilirsiniz. Her şey bit, 0 ve 1 olarak değil, değişken durumları olmayan kapalı matematiksel fonksiyonlar olarak kodlanır. Bu sayıları nasıl yapabileceğinizi öğrenmek için Kilise rakamlarına bakın .

Mesele şu ki, 0s ve 1s tamamen donanıma özgü bir meseledir ve seçim keyfidir. Kullanmakta olduğunuz kodlama, işletim sistemleri veya ağ oluşturma gibi birkaç alt alanın dışında, özellikle bilgisayar bilimi ile ilgili değildir.


İki sayaçlı makinelerde giriş kodlaması ne durumda? Önemli gibi görünüyor. Bu kadar radikal bir şekilde kodlama sorunlarını çözebileceğinizden emin misiniz? Ve karmaşıklığın mesele olmadığı konusunda hemfikir değilim; ama lambda matematiği bunu ele almak için uygun bir yol mu?
babou

Birlik kullanırken karmaşıklık sorunları olduğunu kabul edeceğim. Ancak ikili ve üçlü vs gibi bir seçim biraz keyfi. Kodlama seçimi önemli değil, ancak neden belirli birini kullandığımızı belirleyen bir yasa yok. Çoğunlukla, hesaplama biliminin dışında kalan kolaylık veya donanım gereksinimleri tarafından belirlenir.
jmite

1
"Böylece, Turing makinesini giriş alfabesiyle yapabilirim". "Giriş alfabesi" yerine "kaset alfabesi" yazmalısınız. İlginç olan, hesaplama için kullanılan ve girdi için kullanılan şeydir. Ayrıca, unary'in yeterli olmasına katılmıyorum. Tekli bant alfabesine sahip bir TM, bant sabittir, çünkü bant sabittir.
Simon S

Son cümleyle ilgili olarak: bilgisayar donanım ve mimarisinin tasarımı ve incelenmesi de bilgisayar biliminin bir parçasıdır.
Kaveh

2
Birlikten ikiliye giden noktanın, sayılarınızın boyutunu azaltan logaritmasına, yani ciddi bir gelişme olan, daha da fazla kazanamayacağınız (sadece doğrusal bir faktör) eklemek isteyebilirsiniz.
reinierpost

23

Dikkate alınması gereken başka şeyler:

İkili sayı sistemi kullanmanın nedenlerinden biri, doğrusal boşluktan ziyade logaritmik sayıları temsil edebilen en düşük sayı sistemli sistemdir. Aynı şekilde farklı sayıları birbirinden ayırt etmek için , ortalama gösteriliş uzunluğu en az ile orantılı olmalıdır , çünkü sadece bir uzunluk dizesi vardır, burada ; . İkili sayıdaki farklı sayıları birbirinden benzersiz şekilde ayırt etmek için , ortalama gösterim uzunluğunun en az ile orantılı olması gerekir; çünkü ikili uzunluk uzunluğu ;nnkk<n1+1+...+1=nnlog2n2kknlog10nlog1020,3nn1+2+...+n+12=n . Daha büyük bir taban seçmek, alan gereksinimini sabit bir faktörle geliştirir; taban 10, ortalama gösterim uzunluğunu olan sayıları alır ; bu, , bütün için temel iki gösterimin ortalama uzunluğunun katıdır . İkili ve tekli arasındaki fark çok daha büyüktür; aslında, bir işlevidir . Unary üzerinden ikiliyi seçerek çok şey elde edersiniz; Karşılaştırma yaparak daha yüksek bir üs seçerek çok daha az elde edersiniz.nlog10nlog1020.3nn

Yalnızca iki durumu ayırt etmek zorunda kalırsak dijital mantığı uygulamanın daha kolay olduğu fikrine bazı gerçekler var. Elektrik sinyalleri analogdur ve bu nedenle istediğiniz kadar ayrık durumu temsil ettiği şeklinde yorumlanabilir ... ancak aynı aralıkta daha fazla durumu güvenilir bir şekilde ayırt etmek için daha kesin (dolayısıyla pahalı ve titiz) donanıma ihtiyacınız vardır. Bu, olabildiğince düşük bir üs seçmenizi önerir.

Potansiyel olarak önemli olan bir başka husus, mantığın klasik olarak iki farklı değeri içerdiği anlaşılmıştır: ve . Şimdi, bundan daha çok meraklı mantığımız var, ancak birçok matematik ve bilim hala oldukça temel kavramlara dayanıyor. Bilgisayarların hesaplama için kullanıldığını ve bu mantığın hesaplama için önemli olduğunu düşündüğünüzde, en az iki farklı durum için iyi bir desteğe sahip olduğunuzu öne sürüyor ... ama mantık bundan daha fazlasını gerektirmiyor.f bir L ler etruefalse


9

Bilgisayar devrelerinin çoğunun iki durum kullanmasının en büyük nedenlerinden biri, n farklı voltaj seviyeleri arasında ayrım yapmak için gereken devre miktarının kabaca n- 1 ile orantılı olmasıdır . Sonuç olarak, üç ayırt edilebilir duruma sahip olmak, sinyal başına iki kat daha fazla devre gerektirir ve dördü sahip olmak üç kat daha fazla gerektirir. Devre miktarını üçe katlarken, bilgi miktarını sadece iki katına çıkarırken verimlilikte bir kayıp meydana gelir.

Bilgilerin her öğede ikiden fazla durum kullanılarak depolandığı veya iletildiği bilgisayarlarda bazı yerler olduğunu unutmayın. Bir flash bellek dizisinde, yüzlerce veya binlerce bellek hücresine bir seviye algılayıcı devre kümesi tarafından hizmet verilebilir. Belirli bir miktarda bilgiyi saklarken iki yerine hücre başına dört seviye kullanmak, seviye algılama devresinin boyutunun üç katından fazla olabilir, ancak gereken bellek hücrelerinin sayısını yarıya indirir. 100-base-T veya daha hızlı Ethernet üzerinden haberleşirken, kablodaki çoklu sinyal seviyelerini tespit etmek için gerekli olan devrenin maliyeti, muhtemelen daha fazla kablo içeren bir kablo kullanmak veya daha fazla kablo kullanan kablo kullanmak zorunda kalmaktan kaynaklanacaktır. kabul edilemez bir bozulma seviyesi olmadan saniye başına sinyal geçişleri.


9

Araştırma laboratuvarlarında, aynı anda hem 0 hem de 1 olabilen temel bilgi birimi olarak q-bit kullanan kuantum bilgisayarlar var.
http://en.wikipedia.org/wiki/Quantum_computer

Ayrıca bu referansa göre yapılmış üçlü kuantum bilgisayarlar da olmuştur http://en.wikipedia.org/wiki/Ternary_computer

Bu nedenle, ikili sayı sistemine dayanmayan alternatif bilişim aygıtları oluşturmak gerçekten mümkündür. Örneğin fiber optik sistemler karanlık için 0, 1 ve -1 olarak ışığın iki farklı ortoganal polarizasyonu için kullanırlar.

Bunlardan bahsetmemin nedeni, ikili sayılar hesaplama için yeterli olmasına rağmen, hesaplama için kullanılabilecek alternatif sayı sistemlerinin olduğunu göstermek istemem.

İkili sayı sistemi bu anlamda iyidir, sayıların radix gösterimini kullanarak tamsayılarını kodlayabiliriz . http: // en.wikipedia.org/wiki/Radix Bu değerler ASCII kodunu temsil edebilir A = 0x41 = 01000001 veya değer bir makine talimatını temsil edebilir nop = 0x90 = 0x10010000. xZ


3
Fakat hala ikili bir sistem kullanıyorlar, kuantumda üst üste binme durumunu hesaplamak üçüncü bir olası değer değil. Ayrıca kuantum hesaplama örneği atmak, sorulan soruya yardımcı olmaz.
29'da

Bunu bilmiyordum ..
Ali786 12:14

"aynı anda hem 0 hem de 1 olabilen temel bilgi birimi olarak q-bit." Bu saçmalık. Qubit'ler temel olarak normal bitlerden farklıdır, çünkü ayrık olmayan (karmaşık) bir değeri temsil ederler. Tüm pratik amaçlar için eşsizdirler.
Kesikli kertenkele

3

Dijital bilgisayarların merkezinde işlem gücü, bir anahtar gibi çalışan bir transistördür. Anahtarın "kapısında" akımı yükselterek, akımın "kolektör" ve "verici" arasında akmasına izin verir - anahtar açıktır. Transistör, iki durumdan birinde - tamamen açık veya tamamen kapalı ('doymuş') - bu durumların ne olduğunu net bir şekilde bölecek şekilde çalışmak üzere tasarlanacaktır. Transistör iki durum arasında hızlı bir şekilde geçiş yapabilir, çok sınırlı hatalarla durumda kalır.

Bu devre, AND, NAND, OR, XOR ve diğer fonksiyonlar gibi mantık cihazlarının temelini oluşturur. NAND işlevi yapı taşlarının en temel işlevidir. Bu mantık cihazları, öngörülebilir bir durumda kalan işlemcileri sağlamak üzere monte edilir ve gereken işlevselliği sağlamak için çok sayıda transistör küçük bir alanda paketlenebilir.

Bir transistör birden fazla veya farklı durumları yönetebilir, ancak bu şekilde çalışırken geleneksel "dijital" bilgisayarları üretmezler - öngörülebilir bir durumda kalma eğiliminde değillerdir ve girişime, doygunluğa, osilasyona vb. Eğilimlidirler. hesaplamalı yetenekler açısından sınırlı uygulamaları var. Op-amp analog bilgisayarlar olarak kabul edilebilir.


-3

İkili kod (1,0) kullanıyoruz, çünkü şu anda ikiden fazla olası durumu güvenilir şekilde tutabilen "anahtarlar" oluşturma teknolojisine sahip değiliz. (Kuantum bilgisayarlar şu anda tam olarak satılmamaktadır.) İkili sistem, özellikle trilyonlarca bağlantıyla çalışırken elektrik akımının varlığını elektrik akımı eksikliğinden ayırt etmek oldukça kolay olduğu için seçildi. Ve bu sistemde başka herhangi bir sayı tabanını kullanmak çok saçma çünkü sistemin aralarında sürekli dönüşüm yapması gerekecek. Hepsi bu kadar.


2
Bu doğrudur, fakat hepsi zaten mevcut cevaplara dahil edilmedi mi?
David Richerby
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.