K = 1024'ün kökeni nedir? [kapalı]


73

Bir kilobayttaki bayt sayısındaki fark neden var? Bazı yerlerde 1024 sayısını (2 10 ) gördüm, diğerlerinde ise 1000 (ve fark M, G, T, vb.

Bu, 1024 mü yoksa 1000 mi olması gerektiği (yorumlarda tartışabilmenize rağmen) ancak bu durumun nerede ve ne zaman ortaya çıktığı ve / veya yaygınlaştığı hakkında bir tartışma değil.

Bildiğim kadarıyla, Linux ve donanım üreticileri asla 1024 modelini kullanmıyorlar. Bu ve işitme, beni MS-DOS'un bu sürümü yaygın yaptığını düşündürüyor, ama gerçekler neler?


23
Bir temsilci ikili (2 ^ 10 veya 1024) iken, diğeri ondalık olurken (10 ^ 3 veya 1000) ...
Trezoid

13
Suçlayacak belirli insanlar arıyorsanız, sabit disk üreticilerini işaret edin. Cihazları ondalık MB'lerle, GB'lerle vb. İfade edildiğinde daha fazla kapasiteye sahip görünüyorlar. Bu, her zaman bunu yaptıklarını düşünüyorum. önemli ölçüde.
LawrenceC

23
@ultrasawblade: Terimi gigabytedoğru kullanan tek gruptan biri olduğu için HDD üreticilerini suçlamak mı istiyorsunuz ?
paradroid

13
Sadece her zaman bana 20GB ya da öylesine bir sürücü daha yaygın hale gelmeden önce bilgisayarla ilgili herhangi bir şeyle 1K = 1024 olduğu anlaşılan bir şey gibi geldi. Bu aynı zamanda pek çok teknik olmayan kişinin PC'leri düzenli olarak kullanmaya başladığı zamanla da kabaca çakışıyor. 90'lı yılların başından ve öncesinden çok miktarda bilgisayar literatürü (teknik ve teknik olmayan) "ondalık" KB'ler ya da "kibibitler" hakkında hiçbir şeyden bahsetmiyor.
LawrenceC

13
Paradroid: gigabayt başlangıçta 1024 mb (ve mb = 1024 kb, vb.) anlamına geliyordu. HDD'nin yanlış kullanım konusunda ısrar ettiği için 1000 anlamına geldiği için yeniden yapılandırıldı. Kuşkusuz, bu, 1000 anlamına geldiğinden "doğru" olarak düşündüğünüz şeye bağlıdır, ancak bilgisayar bilimlerinde kilobayt, 1999'da değişinceye kadar teknik nedenlerden dolayı her zaman 1024 idi.
James

Yanıtlar:


63

Oldukça zaman geri gider ve burada ayrıntılı olarak açıklanmıştır . Herhangi biri varsa IBM'i suçlayabileceksiniz gibi görünüyor.

Système enternasyonal d'unités için göz ardı ettikleri için, biraz daha fazla düşünerek Amerikalıları bir bütün olarak suçlardım : P


31
Amerikalıları suçlamak her zaman kolaydır.
Notinlist

13
@ Not: Bu bir şaka.
paradroid

5
Bana Pulp Fiction filminin epik bir sahnesini hatırlatıyor ... "Metrik sistem" ile ilgili soruyu. :-)
Pierre Watelet

7
@Notinlist Amerikalıları her zaman suçlamak kolaydır. Bu yüzden bunu çok yapıyoruz. Bu ve onun eğlenceli olduğu gerçeği.
Singletoned

3
Buradaki 1961 girişi ilginçtir, "65k" den bahsettiği için - "k = 1024" ve "k = 1000, yuvarlatılmış" arasında net bir fark gösterebilen ilk büyüklük sırasıdır, ikincisi için açıkça aşağı iner. Öte yandan, 1964'te herkes ikili anlamları kullanıyor.
Random832

26

Tüm hesaplamalar başlangıçta düşük seviyedeydi. Düşük seviyeli programlamada "1000" sayısı tamamen kullanışsızdır ve daha büyük miktarlar için ön eklere ihtiyaçları vardı, bu yüzden SI olanları tekrar kullandılar. Herkes sahada biliyordu, karışıklık yoktu. 30 yıl boyunca iyi hizmet etti ya da kim bilir.

Amerikalı oldukları için değil, SI'yi ne pahasına olursa olsun kırmaya ihtiyaçları vardı. :-)

Kibibyte'yi tanıdığım ve tanıdığım hiçbir programcı yok. Kilobayt diyorlar ve 1024 bayt demek istiyorlar. Algoritmalar 2 gücüyle doludur. Bugün bile, "1000" programcılar arasında gerçekten işe yaramaz bir sayıdır.

Kibi ve mibi demek çok komik ve konudan dikkat çekiyor. Mutlu bir şekilde telekomünikasyon ve disk depolama sektörlerine veriyoruz :-). Programcı olmayanların okuyabileceği kullanıcı arayüzlerine kibibitler yazacağım.


3
Bitler hakkında konuşurken - "mibibit"
James

3
Ben KiB, vb kilobinarybayt, vb kibibite değil telaffuz olması gerekiyordu düşünüyorum.
Yalan Ryan

2
@Lie Ryan, "kilobinarybyte" gibi önekleri kullanmak, sonuçta başarısız olan ve yine de kibibitten farklı kılan kısaltılmış bir öneriydi. Bkz. En.wikipedia.org/wiki/Binary_prefix
Ben Lee

3
bu yüzden km'yi kilometre-kilometre sayacı olarak söylemek doğru olur mu?
JustJeff

3
1000 sayısı "tamamen işe yaramaz" değil. 1950'lerden bu yana bilgisayar kullanımında "k = 1000" kullanılmıştır. İlk bilgisayarlar aslında ondalık makinelerdi, ikili değil. Ağ hızı her zaman 1000'in katları olarak ölçülmüştür. "30 yıl boyunca iyi çalıştı"? Gerçekten mi? Programcılar en az 43 yıldır "k = 1024" ten şikayet ediyorlar. en.wikipedia.org/wiki/Timeline_of_binary_prefixes
end

8

Doğru ve teknik kişilerin çoğu durumda 1024 = 1K kullanması mantıklı.

Son kullanıcılar için normalde 1000 = 1k demek daha iyidir çünkü herkes 10 tabanlı sayı sistemine alışmıştır.

Sorun, çizgiyi çizecek yer. Bazen pazarlama veya reklamcılık insanlar "çeviride" veya teknik verileri ve dili son kullanıcılara uyarlamada başarılı olamıyorlar.


13
Teknik insanlar 1024 byte gerçekten kibibyte (KiB) olduğunu biliyorum, ama terim olduğunu bilmeli değil teknik olmayan kişiler tarafından bilinir.
paradroid

8
Kim doğru söylüyor? Kilo yüzyıllardır 1000 demek istedi, bu yüzden IMO asla 1024 için kullanmamalıydı.
Bart van Heukelom

20
Bayt bir SI birimi değil; KB, "kilobel" (verilen, eğer büyük Patlama tarafından üretilen ses varsa) açıklanmadığı sürece kullanmak istemediğiniz bir ünite anlamına gelir.)
Wooble

10
@njd: C64, 65536 byte RAM'e sahiptir. Kurallara göre, bellek büyüklüğü kibiBytes'te, kilobitlerdeki veri aktarım hızlarında ve üreticilerin ne düşündüklerini düşünmeden önce toplu depolarda belirtilir. Sabit sürücüler etiket üzerinde T, G, M ve k kullanır, Windows boyutu Ti, Gi, Mi ve ki cinsinden bildirir. Ve bu 1,44 MB floplar? Bunlar ne 1.44MB ne de 1.44MiB'dir, bunlar 1.44 kilokibibittir. Bu 1440kiB ya da 1.474.560 bayt.
Üçüncü

5
KiB, vb değişkenleri olsa da, oldukça yeni. Bu sorun ortaya çıktığında kullanımda olduklarını sanmıyorum, şüphesiz - tam olarak çözmek için yaptıkları izlenimindeydim!
Shinrai

3

Yarı iletken üreticileri suçlayın (bize sadece ikili donanım sağlıyorlar) [1]

Daha da iyisi: suçu mantığın kendisi (ikili mantık sadece en temel mantıktır).

Daha da iyisi: sefil ondalık sistemi için kimi suçlayalım ?

İkili sistemden çok daha fazla kusuru var. Öksürük , insan türündeki öksürükteki ortalama parmak sayısına dayanıyordu.

Oooo ...

[1] Kuantum üç-bit bilgisayarımı istiyorum !!! Şimdi!


29
Sanırım ortalama parmak sayısının 10'dan az olduğunu göreceksiniz </pedant>
Rory Alsop

1
@Rory: ^ Bu iyi bir kahkaha oldu
Mehrdad

2
@Rory: "daha az" </pedant>. Yoksa öyle mi? ... aargh Bir dakika ben asın
outsideblasts

1

1024 suçlanmamak gerçekten çok iyi bir şey çünkü bilgisayar (dijital) bugün olduğu kadar hızlı ve verimli olabiliyor. Bilgisayar sadece 2 değeri (0,1) kullandığı için, anolog sistemin zorluğunu ve karmaşıklığını (yanlışlığı) denklemden çıkarır.

Bir kilobaytın 1000 bit olduğunu söylesek daha karmaşık olurdu, çünkü 2, hangi güçle 1000? bu yüzden 1 kilobayt bile hatalı olur çünkü kayan noktalara veya bir yaklaşıma sahip olacaktır.

Ancak, 8 gigabaytlık bir satış yapmak için pazarlamayı suçluyorum * ve bunu küçük baskılara ekledi

* 1 gigabyte is 1,000,000,000 bytes. 

bu gerçekten bir utanç, bağlantı hızı ile aynı şey, ISS'niz size ~ 150 kiloBytes söylemek yerine 1.5Mbps diyecek. bu sadece çok yanıltıcı


3
15682 bit'lik bir dosyanın ne kadar büyük olduğunu veya böyle bir dosyanın bir ağ üzerinden ne kadar hızlı aktarılabileceğini söylerken, 2'nin güçlerinin hiçbir rolü yoktur. Ve bu en çok kargaşanın olduğu bağlam.
Bart van Heukelom

2
Sonuçta dosya, ikili güç sınırlarına göre ayarlanmış bellek sayfalarında saklanır. TCP üzerinden gönderirken, paketlerin gönderildiği pencere boyutu iki katın gücünün katıdır. Dosya sabit sürücüde depolandığında, iki güç bloğunda saklanır. Ne dediğini anlıyorum, ama kilobyte = 1024 (veya en azından ikisinin katları) çok fazla hesaplamaya girmiş durumda.
FryGuy

1
Adil olmak gerekirse, ağ oluşturma her zaman temel olarak bit kullandı.
Synetech

1
İlk 5.25 "disket 109.375 bayt tuttu ve" 109.4 Kbayt "olarak ilan edildi. Bunu kötü pazarlama nedenleriyle de yaptılar? Sanırım" 106,8 KB "olarak yazmanın daha mantıklı olacağını mı düşünüyorsunuz? hızları ve modem hızları bizi aldatmak için ondalık ölçülür lütfen?.
Endolit

1
@Ibu: 1.000.000.000 bayt ve 1GB arasındaki fark 0'dır. Gerçekten, disket üreticileri neden fark çok küçükken neden kötü niyetli bir şekilde şişirilirler? Yapmazlardı. 1000'leri kullandılar, çünkü müşterileri dolandırmak için bir komploun parçası oldukları için mantıklı, açık ve doğru değillerdi. Sabit disk üreticileri de aynı sebepten dolayı MB yıllarından beri 1000'lerde ölçüm yapıyorlar.
endolith

0

Bilgisayarlardaki sayıların ikili olduğunu ve 2 ^ 10'un 1024 olduğunu düşündüğünüzde, mantıklı geliyor. 1000 yerine 1024 ile çalışmak çok daha kolaydır, çünkü yalnızca tam sayı matematik ve bit kaydırmayı kullanarak 1024 ile kolayca bölebilirsiniz . 1000'e bölünmesi kayan nokta matematiğine ihtiyaç duyan çok daha pahalı bir işlemdir.

Örneğin

bytes = 1 073 741 824
kilobytes = bytes >> 10 = 1 048 576
megabytes = kilobytes >> 10 = 1024
gigabytes = megabytes >> 10 = 1

Hesaplama zamanının ciddi olduğunu düşünüyor musun? Bilgisayarlar neden "km" yi "1024 m" olarak işlemiyor, öyleyse dönüştürmek çok zorsa?
endolith

@endolith Evet, sanırım en azından tarihsel olarak. Bugün ihmal edilebilir olsa da, her CPU döngüsünün birinci sınıf olduğu ilk günlerde, böyle bir şey için iyi bir cevap veren hızlı ve kolay bir hesaplama tercih edilebilir. Özellikle insanlar kongre ile biliniyorsa 1KB 1024 bayt anlamına geliyordu.
Jo-Herman Haugholt
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.