Neden sekizli ve onaltılı? Bilgisayarlar ikili ve insanlar ondalık sayılar kullanır


16

Neden ikili (bilgisayarlar için) veya ondalık (insanlar için) olmayan diğer üsleri kullanıyoruz?

Bilgisayarlar onları ikili olarak temsil ederler ve insanlar ondalık temsillerini almayı şiddetle tercih ederler. Neden bu iki üsse bağlı kalmıyorsunuz?


Sayılar için hex veya yüksek miktarda glif içeren herhangi bir şeyin sağlam bir nedeni olmadığını düşünüyorum. Dahası, ikili temsilcinin gelecekte genel durum için diğer gösterimlerin yerini alabileceğini düşünüyorum.
Mikhail V

@MikhailV Onaltılı gösterim, ikili gösterimden çok daha özlüdür. 2'den daha fazla glif kullanmak için bunun oldukça sağlam bir neden olduğunu söyleyebilirim.
Ben Jones

Yanıtlar:


19

Sekizli (temel-8) ve onaltılık (temel-16) sayıları, çoğu insanın kullandığı ikili (temel-2) sistem bilgisayarları ile ondalık (temel-10) sistem arasında makul bir uzlaşmadır.

Bilgisayarlar birden çok sembolde iyi değildir, bu nedenle taban 2 (sadece 2 sembolünüz varsa) onlar için uygundur, daha uzun dizeler, daha fazla rakamlı sayılar daha az problemdir. İnsanlar birden çok sembolle çok iyidir, ancak daha uzun dizeleri hatırlamakta o kadar iyi değildir.

Sekizlik ve altıgen, ikili arasında ileri geri kolayca dönüştürülebilirken birçok sembolle çalışabilecekleri insan avantajını kullanır, çünkü her altıgen basamak 4 ikili basamağı ( ) ve her sekizlik basamak 3'ü ( ). Bence altıgen sekizlik kazanır, çünkü baytları ve 16/32/64-bit sayıları kolayca temsil edebilir. 8 = 2 316=248=23


8
Örnek olarak, RGB'nin Hex değerlerini düşünün. Beyazın #FFFFFF olduğunu hatırlamak kolaydır. Beyazın ondalık onda 16777215 olduğunu hatırlamak daha zor. # EF439A'nın kırmızı bileşenini kaldırmak istiyor musunuz? # 00439A elde edersiniz, yani ilk iki basamağı 0 olarak değiştirirsiniz. Ondalık olarak, 15663104'ü çıkarmanız gerekir. Bunu hatırlamakta bol şanslar.
jmite

3
Doğru olmak gerekirse, ondalık gösterimdeki renkler üçe, beyaz ise (255, 255, 255) olurdu. Onaltılı değerleri her zaman 2 basamaklı oldukları için birleştiririz. Aynısını 0'ları kullanarak ondalık sayılarla da yapabilirdik, o zaman beyaz 16777215 yerine 255255255 olur.
Spidey

@Spidey Kesinlikle. Üstelik beynim (127,255,255) gibi bir şeyi çok daha kolay ayrıştırabilir ve hatta rengin nasıl görüneceğini tahmin edebilirim, çünkü mürekkep miktarının oranını görebiliyorum ve kafamda altıgen olarak hesaplamak zorunda değilim.
Mikhail V

13

Onları rahatlık ve kısalık için kullanıyoruz.

23240110100169151

Diyelim ki 64 bit bellek adreslerine ihtiyacınız var. 64 ikili bitin tümüne bakabilir veya 16 hex basamağına yoğunlaştırabilirsiniz. Genellikle aynı veya bitişik olup olmadığını görmek için birkaç adresi karşılaştırmanıza gerek yoktur. 64 bit mi yoksa 16 basamağa mı bakmak istiyorsunuz?


5
Sekizli, herhangi bir rakam sembolü eklememe avantajına sahiptir ve 6 bitlik karakterlerin (ve iki bitlik ortak güç olmayan sözcüklerin, örneğin 12 bit PDP-8, 18 bit PDP- 1 [CDC 6x00 için adres kayıtları], 36 bit PDP-6, CDC 6x00 için 60 bit işlenen kayıtları). Sekizli karakterlere / baytlara ve iki sözcüğün gücüne geçiş onaltılık daha çekici hale getirir.
Paul A. Clayton

"64 bit mi yoksa 16 basamağa mı bakmak istersiniz?" Kesinlikle gruplanmış parçalara bakardım. Ama çirkin ve gözlerimi acıtıyor "01" gösterimde değil çünkü. Ve altıgenin gözlerimi ne kadar incittiğini bile söylemiyorum.
Mikhail V

@MikhailV: “01” notasyonu ”ile ne demek istiyorsun? Bitlere bakmayı tercih edersiniz ama “01” notasyonu ”nda değil - hangi notasyonu kullanırsınız? Hex'in gözlerini incittiğini söylüyorsan ondalık üzerinde onaltılıktan biraz daha fazla pratik yaptığını düşünmeye yardımcı olamam. (Aslında gözleriniz için kötü olduğu söylenen (yalnız) seks olduğunu düşündüm, ama bu başka bir hikaye.)
PJTraill

Bunu dtech'in şu anda daha popüler cevabına tercih ederim, çünkü kullanım kolaylığını vurgular, ancak sadece daha kısa temsillerin değil, aynı zamanda daha fazla basamak çeşidinin onaltılık bir sayı okurken nerede olduğunuzu bilmenizi kolaylaştırdığını da belirtmiş olabilirsiniz. sekizli.
PJTraill

@ PaulA.Clayton: iyi puan; PDP-11'in bir diğer avantajı, kelimeler (doğal işlem birimi) 16 bit olmasına rağmen, çoğu komut kodunun doğal olarak 2 bitlik bir işleme ve her ikisi de kayıt numarasını ve adres modunu temsil eden dört 3 bitlik gruba düşmesiydi. İki argümandan 8 olasılık. Benim favorim: 014747 = MOV - (PC), - (PC), hafızayı kendisi ile dolduruyor (izin veriliyorsa).
PJTraill


2

Giriş

Diğer cevaplarda daha önce belirtildiği gibi, farklı amaçlar ve kısıtlamalar için farklı gösterimler olabilir. Notasyonlar aslında bir karakter dizisi olarak bir kodlamadır ve algoritmalar ve veri yapısı çalışmasından, onunla ne yapmak istediğimize bağlı olarak soyut kavramları, bir listeyi veya bir seti kodlamanın birçok yolu olduğunu biliyoruz. . Bu durumda, çoğunlukla algoritmik kolaylıktır.

Sayıların temsili göz önüne alındığında, aynı şey geçerlidir. Bilgisayarın içinde, her şey en düşük seviyede ikiliktir, ancak bazı uygulamalar için yabancı temsilciler kullanılabilir.

Bilgisayarın dışında, temsil edilen değer türüyle ilgili olarak insanın rahatlığına bağlı olarak, her türlü insanın anlaşılabilir temsilini kullanıyoruz. İkili gösterim genellikle çok uzun sürer ve kolayca okunup yazılamayacak şekilde yapılandırılır, böylece onaltılık veya sekizlik olur. Seçim genellikle bilginin bir sayıyı temsil etmesi gerekmeyen ikili bir sözcükle yapılandırılma şekliyle ilgili olabilir.

Ancak, sadece sayılar , yani sayıların temsili göz önüne alındığında , ana faktörlerin fizyoloji, alışkanlık ve rahatlık olduğunu anlamak için diğer sayı temsil sistemlerine bakmaya değer . Kolaylık, elbette, kullanım bağlamına bağlı olduğu için çeşitlilik yaratan önde gelen faktördür.

Daha geniş bir bakış

2n

Sorunun bedeni hiçbir şekilde bilgisayarlarla sınırlı görünmüyor ve insanlar başka birkaç numaralandırma sistemini kullanıyorlar ve kullanıyorlar. Bazıları bilgisayarlarda bile kullanılır, örneğin uzun tamsayılarla uğraşırken ( tamsayı olmayan rakamlardan bahsetmiyorum ).

İlk açıklama, insanlar binlerce veya milyonlarca bir birim olarak sayıldığında, hala ondalık olarak kabul edilir, çünkü bunlar 10'lu güçlerdir. Bu nedenle, neden sekizli veya onaltılık'ın ikili üzerinde sadece bir varyasyon olarak düşünülmemesi gerektiği merak edilebilir. Olası bir neden, sayıları temsil etmek için kullanılan sembollerin sayısı olabilir (bu, diğer sistemlerde göreceğimiz gibi tartışılmaz bir konudur).

Daha sonra, insanlar ile ilgili olarak, baz 5'de, kuin sistemi olarak adlandırılan birkaç sistem kullanıyorlar . Aslında, bu sistemin çoğu iki bazlıdır, ikincisi 2 veya 4'tür, beşinci tabanla dönüşümlüdür, bu da onları taban 10 (ondalık) veya taban 20'ye (canlı) eşdeğer yapar. Tahmin et nereden geliyor :)

Bu çift bazlı sistemlere iki-kuadetli veya dört-kuadine sistemler denir . Saf quinary nadiren kullanılır.

Romen rakamı iki aşamalı sistem olarak görülebilir (bu, onlarla aritmetiğin nasıl yapıldığının bir göstergesidir). Çin ve Japon abaküs iki-kuantum kullanır. Quadri-quinary Mayalar tarafından kullanıldı.

Bir sistemi kullanmanın nedeni muhtemelen çoktur. Bunun iyi bir nedeni, ilk yerel tasarım olması ve insanların buna alışmasıdır. Örneğin, İngilizce konuşan insanların mesafeleri ölçmeye çalışırken neden son derece garip bir numaralandırma sistemi kullandığını merak edebiliriz. Bunun numaralandırma değil, çoklu birimler meselesi olduğunu iddia edebilirsiniz, ancak bu çok zayıf bir açıklamadır. Sayılar esas olarak şeyleri ölçmek için kullanılır.

Bir sistemi korumanın diğer nedenleri belirli bir bağlamda kolaylıktır. Farklı sembollerin sayısı veya bir abaküs üzerindeki pozisyonlar ile yeterince büyük sayılar oluşturmak için gereken sembol sayısı arasında bir denge olabilir. Temel 2, 2 ayrı sembolle çalışır, ancak maddi temsil için sakıncalı olabilecek birçok olayı vardır. Canlı temel 20, yirmi sembol ve insanların hatırlamayacağı çok büyük çarpım tabloları gerektirir. Ancak iki uçlu veya dörtlü bir sistem, özellikle abaküs oluşturmak için çok daha yönetilebilir. Saf quiner sistem muhtemelen daha iyi olurdu, ancak fizyoloji temelli alışkanlıklara ve sezgiye karşı gider. Ve daha iyisini bilmediğimiz zaman, parmaklarımızı kullanabilmek her zaman güzeldir.

Ama hepsi bu kadar değil.

Çok eski ve çok yaygın bir sistem, zamanı ve açıları ölçmek için kullanılan cinsiyete dayalı sistemdir (ancak bunların Dünya dönüşü yoluyla ilişkili olduklarını biliyoruz). Taban 60'ı kullanır, ancak çok fazla olduğu için 60 sembol kullanmaz. Bu nedenle, sözdizimini temsil etmek için başka bir sisteme güvenir (ondalık sistem gibi).

Daire, eşkenar üçgenlerle inşa edilmesi en basit olan 60 derecelik açılara karşılık gelen 6 parçaya bölünebilir. Sonra her derece 60 dakika yay, her biri 60 saniyeye bölünür.

Vikipedi göre

MÖ 3. binyılda eski Sümerler ile ortaya çıktı, eski Babillilere geçti ve hala - değiştirilmiş bir formda - zaman, açılar ve coğrafi koordinatları ölçmek için kullanılıyor.

Kökeni göz önüne alındığında, matematiğin neredeyse bebeklik dönemine girmediği bir dönemde oldukça uygun bir sistemdi. 60⁰ açısının çizilmesi kolay olmakla kalmaz, 60'ın bir çok faktörü vardır, böylece bir sayı olmadan tamsayılarla birçok şekilde bölünmesine izin verir.

12×5=60

Fakat Babillerin canlı üçlü sistemi gibi 60'a ulaşmanın başka yolları da var .

Neden hala cinsiyetsel sistemi kullanıyoruz. Sanırım buna alıştık ve bir değişikliğin tam olarak gerekçelendirilmesi için çok fazla çelişkili sorun yaşayabiliriz.

Numaralandırma sistemleri ile birim sistemleri arasında çok fazla etkileşim olduğunu belirtmek ilginçtir. Ancak bu beklenmelidir çünkü ölçü sayılar için önemli bir rol oynamaktadır. Bu, bellek boyutu için ondalık ve ikili metrikler arasındaki karşıtlıkta fark edilir .


3
Bunun nedeni, başlığın "Neden altıgen, sekizli veya onaltılık?"
Fizz

1
@RespawnedFluff İyi not. O zaman sorgulamam soruya uzanabilir. Diğer cevapların ilgisiz olduğunu söylemek istemedim. Ancak daha geniş bir görüş, çeşitli sistemler için olası motivasyonları daha iyi gösterir. Halihazırda verilen bazı cevapları desteklemektedir. Temelde motivasyonlar alışkanlık ve rahatlıktır. Ancak kolaylık büyük ölçüde bağlama bağlıdır. Bellek boyutu ikiliği yeni oluşturulmuş bir konudur ve noktayı açıklar.
babou

2
Kısalık bir erdemdir, bu soru 1000 kelimelik bir nesir gerektirmez ve çoğu çok alakalı değildir. Ayrıca soruyu cevaplayamadınız.
dtech

"insanlar binlerce sayıldığında, ..., bu hala ondalık sayılır, çünkü bunlar 10'lu güçlerdir. Öyleyse, neden sekizli veya onaltılık ikili üzerinde sadece bir varyasyon olarak düşünülmemesi gerektiği merak edilebilir." basamak, genellikle 0. Bu her 0-999 sayısı için 1000 farklı sembol kullanacak olan taban-1000'den farklıdır.
dtech

1
@dtech Teşekkür ederim. Genelde cevaplarımın önündeki giriş ya da özeti unutmuştum. Ve bu da beni diğer cevapların göz ardı ettiği önemli bir noktaya götürdü. Her ikili sözcük bir sayı olarak tasarlanmamıştır. Sorunları bulmaya yardımcı olan daha geniş bir görüş elde etmeye çalışmaktır.
babou

-1

Bilgisayarlar ikili sayıları anlar ve ikili sayılarda, ağırlığın ağırlığı 2'dir, bu nedenle bir sayıyı temsil eden basamak sayısı sayıya bağlı olarak büyük olabilir.

Diyelim ki ondalık sayıdaki 64, 7 bit ile temsil edilebilirken, 5000 sayısını temsil etmek için 13 bit gerekir.

Sekizli ve onaltılık sayı sistemi, ikili sayıyı göstermenin kompakt yoludur .


2
Bu nasıl cevap [What advantage is there to using a base different from ten or (a power of) two?]veriyor - ya da başka nasıl yorumluyorsunuz Why not stick to [bases 2 and 10]??
greybeard
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.