Bayt boyutu dönüştürücü

Bir veri boyutunu onluk ve ikilik birimlere birlikte dönüştürür — KB yanında KiB, MB yanında MiB — bitler, tam bayt sayısı ve her OS'un raporladığı değer.

Tam bayt
1,000,000,000,000
Onluk
1000'in kuvvetleri — SI, sürücü üreticileri, macOS
  • B1,000,000,000,000
  • KB1,000,000,000
  • MB1,000,000
  • GB1,000
  • TB1
İkilik
1024'ün kuvvetleri — IEC, Windows, RAM
  • KiB976,562,500
  • MiB953,674.3164
  • GiB931.3226
Bitler
1000'in kuvvetleri — ağ hızları her zaman onluktur
  • bit8,000,000,000,000
  • Kb8,000,000,000
  • Mb8,000,000
  • Gb8,000
  • Tb8
Araçlarınız bunu nasıl bildirecek

Aynı baytlar, beş okuma. Hiçbiri yanlış değil; bölen, etiket ya da ikisi konusunda anlaşamıyorlar.

  • Windows Gezgini — 1024'e böler, onluk etiketleri korur931 GB
  • macOS Finder — 1000'e böler1 TB
  • ls -lh, du -h — 1024'e böler932G
  • ls --si, du --si — 1000'e böler1.0T
  • Sürücü ve USB üreticileri — 1000'e böler1 TB

Bu araç ne yapar

Herhangi bir birimde bir boyut yazın — 1 TB, 1536 MiB, 900 Mb ya da bir dosya listesinden kopyalanmış yalnızca ham bir bayt sayısı — ve aynı anda her iki birim sistemine dönüştürülmüş olarak, tam bayt sayısı ve makinenizdeki araçların her birinin onu bildirme biçimiyle birlikte geri gelir.

İki sistem bir geçiş düğmesinin arkasında değil, yan yana gösterilir, çünkü veri boyutlarının tüm zorluğu, her ikisinin de kullanımda olması ve her ikisinin de kendini aynı adla adlandırmasıdır. Tek başına bir sayı, onu hangisinin ürettiğini size söylemez.

Bir kilobaytın neden iki anlamı vardır

Bilgisayarlar belleği ikinin kuvvetleriyle adresler; bu yüzden 1024, bir makineye 1000'in asla olamayacağı bir şekilde doğal bir yuvarlak sayıdır. Erken dönemde, «kilo» 1024 için ödünç alındı, çünkü SI bininine yeterince yakındı ve kimse ikisinin ayrı düşmesini beklemiyordu. Ayrı düştüler.

Hata alt uçta küçüktür ve her adımda birikir. Bir kilobayt %2,4, bir megabayt %4,9, bir gigabayt %7,4, bir terabayt %10 farklıdır. Petabayta gelindiğinde iki yanıt %12,6 arayla düşer, ki bu artık bir yuvarlama ayrıntısı değildir:

KB    1,000                 KiB    1,024                 # 2.4% apart
MB    1,000,000             MiB    1,048,576             # 4.9%
GB    1,000,000,000         GiB    1,073,741,824         # 7.4%
TB    1,000,000,000,000     TiB    1,099,511,627,776     # 10.0%

1998'de IEC, 1024'ün kuvvetlerine kendi adlarını verdi — kibibayt, mebibayt, gibibayt ve KiB, MiB, GiB simgeleri — tam da belirsizlik yazıyla giderilebilsin diye. Adlar günlük kullanımda hiç tutmadı, ama simgeler tuttu ve KiB etiketli her şey belirsizlikten uzaktır. KB etiketli her şey hâlâ değildir.

Kim hangi yolla sayar

Bölünme rastgele değildir. Kabaca, adreslenen donanım ile satılan donanım arasındaki çizgi boyunca düşer:

  • RAM her zaman ikiliktir. 16 GB'lık bir bellek modülü 16 GiB'dir, çünkü bellek ikilik satırlar ve sütunlarla adreslenir ve istese de yuvarlak bir onluk sayı olamaz.
  • Sürücüler her zaman onluktur. 1 TB'lık bir disk satan bir üretici 1.000.000.000.000 baytı kastediyordur ve bu, kimse şikâyet etmeden çok önce böyleydi.
  • Windows ikiliktir ama onluk etiketleri kullanır. 1024'e böler ve GB yazar; bu, insanların gerçekte yaşadığı kafa karışıklığının çoğunun geldiği yerdir.
  • macOS, 2009'daki Snow Leopard'dan beri onluktur. Windows'ta 931 GB okunan aynı sürücü bir Mac'te 1 TB okunur ve hiçbir makine bozuk değildir.
  • Linux komut satırı araçları size ikisini de verir: ls -lh ve du -h 1024'e böler ve aynı komutlardaki --si bayrağı 1000'e böler.
  • Ağ her zaman onluktur ve bayt yerine bit sayar.

931 GB olarak görünen 1 TB'lık sürücü

Bu, veri boyutları hakkında en yaygın tek sorudur ve yanıt, hiçbir alanın eksik olmadığıdır. Sürücü tam olarak kutunun söylediğini tutar. Windows yalnızca o baytları 1000 yerine 1024'e üç kez böler ve sonra aksini söyleyen bir etiket yazdırır.

1,000,000,000,000 bytes         # what the manufacturer sold
/ 1024 = 976,562,500 KB         # Windows divides once
/ 1024 = 953,674.32 MB          # twice
/ 1024 = 931.32 GB              # three times, then labels it GB

Sürücü reklam edilenden küçük değildir ve işletim sistemi bayt sayısı hakkında yalan söylemiyor. Yanlış olan tek şey etikettir: Windows'un 931 GB dediği aslında 931 GiB'dir ve 931 GiB, 1 TB'dir. Bu araca herhangi bir boyut yapıştırın, iki sütun o ilişkiyi doğrudan gösterir.

Bitler ve baytlar ve sekiz katı çarpanı

Bir bayt sekiz bittir ve ikisi yazıda yalnızca tek bir harfin büyük/küçük harfiyle ayrılır: büyük B bayt, küçük b bit demektir. Mb ve MB sekiz katı farklıdır, ki bu bir hesabı saçmalık yapmaya fazlasıyla yeter.

Bu en çok, bit cinsinden saniyede verilen ağ hızları için önemlidir; dosya boyutları ve indirme ilerlemesi ise bayt cinsindendir. 100 Mb/s'lik bir bağlantı en çok 12,5 MB/s hızında ilerler; böylece 1 GB'lık bir dosya, sayıların söz veriyor göründüğü 10 saniye değil, yaklaşık 80 saniye sürer. Sizi hiçbir şey kısıtlamıyor; birimler asla aynı değildi.

Bitler burada yalnızca onluk sistemde gösterilir ve bu bir basitleştirme değildir. Ağ hızları onun kuvvetleriyle tanımlanır; bu yüzden bir megabit, terimin kullanıldığı her yerde bir milyon bittir. IEC ikilik bit birimlerini tanımlar, ama esasen hiçbir şey onları kullanmaz ve onları sunmak kimsenin kastetmediği bir dönüşümü davet ederdi.

Buradaki sayılar neden tamdır

JavaScript sayıları tam sayıları yalnızca yaklaşık 9 katrilyona kadar — 2^53 — tam tutar. Bir eksabayt 10^18'dir, ki bu bunun çok ötesindedir; bu yüzden sıradan aritmetik üzerine kurulu bir dönüştürücü, tam da büyük-depolama sorularının yaşadığı yerde basamak kaybetmeye başlar ve son birkaç basamağında güvenle yanlış olan bir bayt sayısı bildirir.

Buradaki her şey bunun yerine keyfi kesinlikli tam sayılar kullanır. Bu, daha az apaçık bir şey de kazandırır: söz konusu her çarpan onun bir kuvveti ya da ikinin bir kuvveti olduğu ve her ikisi de onun bir kuvvetine tam bölündüğü için, bu birimler arasındaki her dönüşüm sonlu bir ondalık olarak biter. 1 TB yaklaşık 931,32 GiB değildir — kalansız 931,322574615478515625 GiB'dir. Buradaki satırlar okuma için yuvarlanmıştır ve üstlerindeki bayt sayısı tüm yanıttır.

Sıkça sorulan sorular

Bir kilobayt 1000 bayt mı yoksa 1024 bayt mı?
Kime göre saydığınıza bağlı olarak ikisi de. SI ve sürücü üreticileri 1000 kullanır; Windows ve RAM boyutları 1024 kullanır. IEC, 1024'lük birimleri ayrı adlandırır — kibibayt, mebibayt, gibibayt — ki bu belirsizliği kaldırır; ancak eski etiketler hâlâ her yerdedir. Bu araç, birini seçmek yerine iki okumayı da aynı anda gösterir.
1 TB'lık sürücüm neden yalnızca 931 GB gösteriyor?
Hiçbir şey eksik değil. Üretici size, 1000'in kuvvetleriyle sayarak 1.000.000.000.000 bayt sattı. Windows bunu 1024'e üç kez böler, 931,32 elde eder ve sonra sonucu GB olarak etiketler. Aynı baytlar, farklı bölen, yanıltıcı etiket — size gösterdiği aslında 931 GiB'dir.
MB ile MiB arasındaki fark nedir?
Bir megabayt 1.000.000 bayttır ve bir mebibayt 1.048.576 bayttır; böylece MiB yaklaşık %4,9 daha büyüktür. MiB tanımı gereği belirsizlikten uzaktır; MB yalnızca onu yazdıran aracın hangi kuralı izlediğini biliyorsanız belirsizlikten uzaktır.
İndirmem neden bağlantı hızımdan yavaş?
Genellikle ikisi farklı birimlerde ölçüldüğü için. Bağlantı hızları saniyede megabit, indirmeler saniyede megabayt cinsinden verilir ve bir baytta sekiz bit vardır. 100 Mb/s'lik bir hat yaklaşık 12,5 MB/s'de tavan yapar.
25 MB'lık barındırma ya da yükleme sınırım gerçekte ne anlama geliyor?
Hizmete bağlıdır ve güvenli varsayım daha küçük sayıdır. Sınır 25 × 1.000.000 bayt olarak uygulanıyorsa, 25 MiB'nin hemen altındaki bir dosya reddedilir. Dosya boyutunuzu burada iki sütuna da dönüştürmek, iki okumayı da geçip geçmediğini hemen gösterir.
Çok büyük boyutları işleyebilir mi?
Evet. Aritmetik keyfi kesinlikli tam sayılar kullanır; böylece eksabaytlar, zettabaytlar ve yottabaytlar, sıradan kayan noktalı sayıların 2^53'ün ötesinde yaptığı gibi son basamaklarını kaybetmek yerine tam olarak dönüşür.
Yazdığım herhangi bir şey bir sunucuya gönderiliyor mu?
Hayır. Bu, tarayıcınızda aritmetiktir; hiçbir şey yüklenmez ya da günlüğe yazılmaz ve ağ bağlantısı olmadan çalışır.