Apa asal usul K = 1024? [Tutup]

73

Mengapa ada perbedaan dalam jumlah byte dalam satu kilobyte? Di beberapa tempat saya pernah melihat angka 1024 (2 10 ) sementara di tempat lain jumlahnya 1000 (dan perbedaannya semakin besar dengan M, G, T, dll.).

Ini bukan diskusi tentang apakah itu harus 1024 atau 1000 (meskipun Anda dapat membahasnya di komentar) tetapi tentang di mana / kapan situasi ini berasal dan / atau menjadi luas.

Sejauh yang saya tahu, produsen Linux dan perangkat keras tidak pernah menggunakan varian 1024. Itu, dan hanya desas-desus, membuat saya berpikir MS-DOS membuat versi ini umum, tetapi apa faktanya?

Bart van Heukelom
sumber
23
Satu representasi dalam biner (2 ^ 10, atau 1024) sementara yang lain dalam desimal (10 ^ 3 atau 1000) ...
Trezoid
13
Jika Anda mencari orang tertentu untuk disalahkan, arahkan ke produsen hard drive. Itu membuat perangkat mereka terlihat seperti mereka memiliki kapasitas lebih ketika diekspresikan dalam MB desimal, GB, dll. Mereka selalu melakukan ini saya percaya, tetapi belum cukup baru-baru ini bahwa kesenjangan antara desimal dan biner telah tumbuh cukup lebar. menjadi penting secara signifikan.
LawrenceC
23
@ultrasawblade: Anda ingin menyalahkan produsen HDD karena menjadi satu-satunya grup yang menggunakan istilah ini gigabytedengan benar?
paradroid
13
Bagi saya, selalu terasa sebagai hal yang dimengerti bahwa 1K = 1024 dengan komputer apa pun yang terkait sebelum 20GB drive menjadi hal biasa. Ini juga kira-kira bertepatan dengan waktu ketika banyak orang non-teknis mulai menggunakan PC secara teratur. Sejumlah besar literatur komputer (teknis dan nonteknis) dari awal 90-an dan sebelumnya tidak menyebutkan apa-apa tentang KB "desimal" atau "kibibytes".
LawrenceC
13
@paradroid: gigabyte aslinya berarti 1024 mb (dan mb = 1024 kb, dll). Itu retconned berarti 1000 karena HDD produsen bersikeras menggunakannya salah. Harus diakui, ini tergantung pada apa yang Anda anggap "benar" karena kilo berarti 1000, tetapi dalam ilmu komputer, kilobyte selalu 1024 karena alasan teknis sampai diubah pada tahun 1999.
James

Jawaban:

63

Kembali beberapa waktu lalu, dan dirinci di sini . Sepertinya Anda bisa menyalahkan IBM, kalau ada.

Setelah memikirkannya lagi, saya akan menyalahkan orang Amerika secara keseluruhan, karena pengabaian mereka yang terang-terangan terhadap Système international d'unités : P

paradroid
sumber
31
Selalu mudah untuk menyalahkan orang Amerika.
Notinlist
13
@Notinlist: Ini adalah lelucon.
paradroid
5
Itu mengingatkan saya pada adegan epik film Pulp Fiction ... Yang dengan pertanyaan tentang "sistem metrik". :-)
Pierre Watelet
7
@Notinlist Sangat mudah untuk selalu menyalahkan orang Amerika. Itu sebabnya kami banyak melakukannya. Itu dan fakta bahwa itu menyenangkan.
Singletoned
3
Entri 1961 ada yang menarik, karena menyebutkan "65k" - menjadi urutan pertama yang besarnya dapat menunjukkan perbedaan yang jelas antara "k = 1024" dan "k = 1000, bulat", turun dengan jelas untuk yang terakhir. Pada tahun 1964, di sisi lain, semua orang menggunakan makna biner.
Random832
26

Semua komputasi tingkat rendah pada awalnya. Dan pada pemrograman tingkat rendah angka "1000" sama sekali tidak berguna dan mereka membutuhkan awalan untuk jumlah yang lebih besar sehingga mereka menggunakan kembali SI. Semua orang tahu itu di lapangan, tidak ada kebingungan. Ini berfungsi dengan baik selama 30 tahun atau siapa yang tahu.

Itu bukan karena mereka orang Amerika sehingga mereka harus menghancurkan SI dengan segala cara. :-)

Tidak ada programmer yang saya kenal dan katakan kibibyte. Mereka mengatakan kilobyte dan artinya 1024 byte. Algoritma penuh dengan kekuatan 2. Bahkan hari ini, "1000" adalah angka yang benar-benar tidak berguna di antara programmer.

Mengatakan kibi dan mibi terlalu lucu dan menarik perhatian subjek. Kami dengan senang hati memberikannya ke sektor telekomunikasi dan penyimpanan disk :-). Dan saya akan menulis kibibytes pada antarmuka pengguna di mana non-programmer dapat membacanya.

Tidak dalam daftar
sumber
3
Ini bahkan lebih lucu untuk dikatakan ketika berbicara tentang bit - "mibibit"
James
3
Saya pikir KiB, dll seharusnya diucapkan kilobinarybyte, dll dan bukan kibibyte.
Lie Ryan
2
@Lie Ryan, menggunakan awalan seperti "kilobinarybyte" adalah proposal yang akhirnya gagal, dan memiliki singkatan yang berbeda dari kibibyte. Lihat en.wikipedia.org/wiki/Binary_prefix
Ben Lee
3
jadi apakah adil jika mengucapkan km sebagai kilodecimalmeters?
JustJeff
3
Angka 1000 tidak "sama sekali tidak berguna". "k = 1000" telah digunakan dalam komputasi sejak 1950-an. Komputer pertama sebenarnya adalah mesin desimal, bukan biner. Kecepatan jaringan selalu diukur dalam kelipatan 1000. "Ini berfungsi dengan baik selama 30 tahun"? Benarkah? Programmer telah mengeluh tentang "k = 1024" selama setidaknya 43 tahun. en.wikipedia.org/wiki/Timeline_of_binary_prefixes
endolith
8

Itu benar dan masuk akal bagi orang teknis untuk menggunakan 1024 = 1K dalam banyak kasus.

Untuk pengguna akhir, biasanya lebih baik mengatakan 1000 = 1r karena semua orang terbiasa dengan sistem angka berbasis 10.

Masalahnya adalah di mana harus menarik garis. Terkadang orang pemasaran atau periklanan tidak benar-benar berhasil dalam "terjemahan" atau dalam mengadaptasi data teknis dan bahasa untuk pengguna akhir.

mit
sumber
13
Orang-orang teknis harus tahu bahwa 1024 byte benar-benar Kibibyte (KiB), tetapi ketahuilah bahwa istilah itu tidak dikenal oleh orang-orang non-teknis.
paradroid
8
Siapa bilang itu benar? Kilo telah berarti 1000 selama berabad-abad, jadi IMO mereka seharusnya tidak pernah menggunakannya untuk 1024.
Bart van Heukelom
20
Byte bukan unit SI; KB berarti "kilobel" (memang, sebuah unit yang Anda tidak akan pernah ingin menggunakannya kecuali Anda menggambarkan suara, jika ada, yang diproduksi oleh Big Bang.)
Wooble
10
@ njd: C64 memiliki 65536 byte RAM. Secara konvensi, ukuran memori ditentukan dalam kibiBytes, kecepatan transfer data dalam kilobit, dan penyimpanan massal dalam apa pun — produsen-pikirkan-sekarang-Bytes. Harddrives menggunakan T, G, M dan k pada label, Windows melaporkan ukurannya dalam Ti, Gi, Mi dan ki. Dan disket 1,44MB itu? Itu bukan 1.44MB atau 1.44MiB, mereka adalah 1.44 kilokibibytes. Itu 1440kiB atau 1'474'560 byte.
Ketiga
5
Varian kiB, dll. Cukup baru. Saya tidak berpikir mereka sedang digunakan ketika masalah ini muncul, tentu saja - saya mendapat kesan mereka dibuat tepat untuk menyelesaikannya!
Shinrai
3

Salahkan produsen semikonduktor (mereka hanya menyediakan perangkat keras biner kepada kami) [1]

Lebih baik lagi: salahkan logika itu sendiri (logika biner hanyalah logika paling dasar).

Lebih baik lagi: siapa yang harus kita salahkan atas sistem desimal yang buruk ?

Ini memiliki lebih banyak kekurangan daripada sistem biner. Itu didasarkan batuk pada jumlah rata-rata jari pada batuk spesies manusia

Oooo ...

[1] Saya ingin komputer kuantum tiga qubit saya !!! Sekarang!

lihat
sumber
29
Saya pikir Anda akan menemukan jumlah jari rata-rata kurang dari 10 </pedant>
Rory Alsop
1
@Rory: ^ itu adalah tawa yang bagus
Mehrdad
2
@Rory: "less" </pedant>. Atau itu? Tunggu sebentar, saya aargh ...
luar
1

1024 tidak dapat disalahkan itu adalah hal yang sangat bagus memang, karena itu alasan komputer (digital) dapat secepat dan seefisien seperti sekarang ini. Karena komputer hanya menggunakan 2 nilai (0,1) ia mengeluarkan kesulitan dan kompleksitas (ketidaktepatan) sistem anolog dari persamaan.

Akan lebih rumit jika kita mengatakan satu kilobyte adalah 1000 bit karena 2 pangkat berapa 1000? jadi bahkan 1 kilobyte tidak akurat karena akan memiliki titik apung atau perkiraan.

Tetapi saya menyalahkan pemasaran karena menjual 8 gigabytes * dan menambahkan ini dalam cetakan kecil

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

sungguh memalukan, itu adalah hal yang sama dengan kecepatan koneksi, ISP Anda akan mengatakan 1,5Mbps bukannya memberi tahu Anda ~ 150 kiloBytes. itu hanya sangat menyesatkan

Ibu
sumber
3
Dengan mengatakan seberapa besar file 15682 bit, atau seberapa cepat file seperti itu dapat ditransfer melalui jaringan, kekuatan 2 tidak berperan. Dan itulah konteks yang paling membingungkan.
Bart van Heukelom
2
Pada akhirnya file disimpan di halaman memori, yang disejajarkan dengan batas kekuatan biner. Saat mengirim melalui TCP, ukuran jendela tempat paket dikirimkan adalah kelipatan dua kekuatan. Ketika file disimpan di hard drive, file itu disimpan dalam blok kekuatan dua. Saya mengerti apa yang Anda katakan, tetapi kilobyte = 1024 (atau setidaknya kelipatan dua kekuatan) sudah tertanam dalam komputasi terlalu banyak.
FryGuy
1
Agar adil, jaringan selalu menggunakan bit sebagai basis mereka.
Synetech
1
Floppy 5.25 "pertama berisi 109.375 byte dan diiklankan sebagai" 109,4 Kbytes ". Saya kira mereka melakukan ini karena alasan pemasaran yang jahat, juga? Anda pikir akan lebih logis untuk menuliskannya sebagai" 106,8 KB "? Dan tape drive dan prosesor kecepatan dan kecepatan modem semuanya diukur dalam desimal untuk menipu kita?
endolith
1
@Ibu: perbedaan antara 1.000.000.000 byte dan 1GB adalah 0. Memang, mengapa produsen floppy dengan jahat mengembang jumlah mereka ketika perbedaannya sangat kecil? Mereka tidak akan melakukannya. Mereka menggunakan 1000-an karena itu logis, jelas, dan benar, bukan karena mereka adalah bagian dari konspirasi untuk menipu pelanggan. Produsen hard drive telah mengukur dalam 1000 sejak MB tahun, juga, untuk alasan yang sama.
endolith
0

Ketika Anda menganggap bahwa angka pada komputer adalah biner, dan 2 ^ 10 adalah 1024, itu masuk akal. Ini jauh lebih mudah untuk bekerja dengan 1024 daripada 1000, karena Anda dapat dengan mudah membaginya dengan 1024 hanya menggunakan matematika integer dan pergeseran bit . Membagi dengan 1000 adalah operasi yang jauh lebih mahal, yang mungkin membutuhkan matematika floating point.

Misalnya

bytes = 1 073 741 824
kilobytes = bytes >> 10 = 1 048 576
megabytes = kilobytes >> 10 = 1024
gigabytes = megabytes >> 10 = 1
Jo-Herman Haugholt
sumber
Anda serius berpikir waktu perhitungan itu relevan? Mengapa komputer tidak memproses "km" sebagai "1024 m", kalau begitu sulit untuk dikonversi?
endolith
@endolith Ya saya kira begitu, setidaknya secara historis. Meskipun mungkin dapat diabaikan hari ini, di hari-hari awal ketika setiap siklus CPU berada pada premium, perhitungan cepat dan mudah yang memberikan jawaban yang layak akan lebih disukai untuk sesuatu seperti ini. Terutama jika orang tahu dengan konvensi bahwa 1KB berarti 1024 byte.
Jo-Herman Haugholt