Pertanyaan ini membuat saya bertanya-tanya tentang perbedaan antara tiga cara mengukur ukuran ini: kibibyte , satu kilobit , dan kilobyte konvensional.
Saya mengerti bahwa pengukuran ini memiliki kegunaan yang berbeda (kecepatan transfer data diukur dalam bit / detik), tapi saya tidak yakin apakah saya dapat membedakan antara Mb dan MB dan MiB.
Berikut adalah komentar, direproduksi di bawah, diambil dari jawaban ini ( penekanan saya ).
C64 memiliki 65536 byte RAM. Secara konvensional, ukuran memori ditentukan dalam kibiBytes , kecepatan transfer data dalam kilobit , dan penyimpanan massal dalam byte apa pun yang diproduksi oleh produsen . 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 1,44 kilokibibytes. Itu 1440kiB atau 1'474'560 byte. - Ketiga
sumber
Jawaban:
Ini sama dengan awalan SI apa pun;
k
(1x10 3 ),M
(1x10 6 ),G
(1x10 9 ), jadi, dengan ekstensi:Satu-satunya yang sedikit berbeda adalah Awalan Biner IEC (kibi / mebi / gibi dll), karena mereka berada di basis 2, bukan basis 10 (misalnya semua angka sama dengan 2 sesuatu, bukan 10 sesuatu ). Saya lebih suka menggunakan awalan SI karena saya merasa jauh lebih mudah. Plus, Kanada (negara saya) menggunakan sistem metrik, jadi saya terbiasa, misalnya
1kg = 1000g
(atau1k anything = 1000 base things
). Tidak ada yang salah atau benar; pastikan Anda tahu yang mana yang Anda gunakan dan apa yang benar-benar disamakan.Untuk menenangkan para komentator:
Inilah sebabnya, jika Anda pernah melihat dalam hex editor, semuanya terbagi menjadi dua karakter heksadesimal; setiap karakter hex adalah ukuran gigitan, dan ada dua hingga satu byte. Misalnya:
sumber
500GB (box) = 465.7GiB (computer)
(dan itulah yang mereka dapatkan dari Anda).Ada beberapa istilah dasar yang sederhana dan mudah dipahami:
Untuk mengkonversi antara bit dan byte (dengan awalan apa pun), cukup gandakan atau bagi dengan delapan; bagus dan sederhana.
Sekarang, segala sesuatunya menjadi sedikit lebih rumit karena ada dua sistem untuk mengukur kelompok besar data: desimal dan biner . Selama bertahun-tahun, pemrogram dan insinyur komputer hanya menggunakan istilah yang sama untuk keduanya, tetapi kebingungan akhirnya membangkitkan beberapa upaya untuk menstandarisasi satu set awalan yang tepat.
Setiap sistem menggunakan satu set awalan serupa yang dapat diterapkan ke bit atau byte. Setiap awalan memulai yang sama di kedua sistem, tetapi yang biner terdengar seperti baby-talk setelah itu.
Sistem desimal adalah basis-10 yang digunakan kebanyakan orang dan nyaman digunakan karena kami memiliki 10 jari. Sistem biner adalah basis-2 yang digunakan kebanyakan komputer dan nyaman digunakan karena mereka memiliki dua keadaan tegangan.
Sistem desimal jelas dan mudah digunakan untuk kebanyakan orang (cukup sederhana untuk dikalikan di kepala kita). Setiap awalan naik 1.000 (alasan untuk itu adalah masalah yang sama sekali berbeda).
Sistem biner jauh lebih sulit bagi kebanyakan orang non-komputer untuk menggunakan, dan bahkan programmer sering tidak dapat menggandakan jumlah besar secara sewenang-wenang di kepala mereka. Namun demikian, ini adalah masalah sederhana menjadi kelipatan dua. Setiap awalan naik 1.024. Satu "K" adalah 1.024 karena itu adalah kekuatan terdekat dari dua ke desimal "k" dari 1.000 (ini mungkin benar pada titik ini, tetapi perbedaannya meningkat dengan cepat dengan setiap awalan berturut-turut).
Jumlahnya sama untuk bit dan byte yang memiliki awalan yang sama.
Perhatikan bahwa perbedaan antara sistem desimal dan biner mulai kecil (pada 1K, mereka hanya 24 byte, atau terpisah 2,4%), tetapi tumbuh dengan setiap tingkat (pada 1G, mereka> 70MiB, atau 6,9% terpisah).
Sebagai aturan umum, perangkat keras menggunakan unit desimal (baik bit atau byte) sementara perangkat lunak menggunakan biner (biasanya byte).
Ini adalah alasan bahwa beberapa produsen, terutama drive mfgs, suka menggunakan unit desimal, karena itu membuat ukuran drive terdengar lebih besar, namun pengguna menjadi frustrasi ketika mereka menemukan itu kurang dari yang mereka harapkan ketika mereka melihat Windows et. Al. melaporkan ukuran dalam biner. Misalnya, 500GB = 476GiB, jadi saat drive dibuat mengandung 500GB dan diberi label demikian, My Computer menampilkan biner 476GiB (tetapi sebagai "476GB"), sehingga pengguna bertanya-tanya ke mana 23GB lainnya pergi. (Pembuat drive sering menambahkan catatan kaki ke paket yang menyatakan bahwa "ukuran yang diformat kurang" yang menyesatkan karena overhead sistem file tidak seberapa dibandingkan dengan perbedaan antara unit desimal dan biner.)
Perangkat jaringan sering menggunakan bit daripada byte karena alasan historis, dan ISP sering suka beriklan menggunakan bit karena itu membuat kecepatan koneksi yang mereka tawarkan terdengar lebih besar: 12Mibps, bukan hanya 1,5MiBps. Mereka bahkan sering mencampur dan mencocokkan bit dan byte dan desimal dan biner. Misalnya, Anda dapat berlangganan ke apa yang disebut ISP sebagai saluran “12MBps”, berpikir bahwa Anda mendapatkan 12MiBps tetapi sebenarnya hanya menerima 1,43MiBps (12.000.000 / 8/1024/1024).
sumber
Beberapa jawaban tidak tepat.
Mari pertama-tama membuat beberapa catatan:
Awalan "kilo" berarti 1 000. Awalan "kilo" berarti apa pun 1.000 dari item itu. Hal yang sama berlaku untuk "mega" atau juta, "giga" atau miliar, "tera" atau triliun, dan seterusnya.
Alasan 1 024 ada bukannya hanya memiliki 1 000 karena cara aritmatika biner bekerja. Biner, seperti namanya, adalah sistem basis 2 (memiliki 2 digit: 0, 1). Itu hanya dapat melakukan aritmatika dengan dua digit, berbeda dengan sistem basis 10 yang kami gunakan setiap hari (0, 1, 2 ... 9), yang memiliki sepuluh digit.
Untuk mencapai angka 1 000 ( kilo ) menggunakan aritmatika biner, perlu untuk melakukan perhitungan floating point. Ini berarti bahwa digit biner harus dijalankan setiap operasi hingga 1.000 tercapai. Dalam sistem basis 10, 1 000 = 10 3 (Anda selalu menaikkan 10 ke daya di basis 10), perhitungan yang sangat mudah dan cepat untuk komputer untuk melakukan tanpa "sisa", tetapi dalam sistem basis 2, itu adalah tidak mungkin menaikkan 2 (Anda selalu menaikkan 2 pangkat di basis 2) ke bilangan bulat positif untuk mendapatkan 1 000. Operasi floating point atau penambahan panjang harus digunakan, dan itu membutuhkan lebih banyak waktu untuk dijalankan daripada perhitungan bilangan bulat 2 10 = 1024.
Anda mungkin telah memperhatikan bahwa 2 10 = 1 024 menggoda mendekati 1 000 dan 1 024 ke 1 angka signifikan adalah 1 000 (perkiraan yang sangat baik), dan kembali ketika kecepatan CPU lambat seperti anjing tua, dan memori sangat terbatas , ini adalah pendekatan yang cukup baik dan sangat mudah untuk dikerjakan, belum lagi cepat dieksekusi.
Karena alasan inilah istilah dengan "kilo", "mega", "giga", dll., Diawali dengan angka yang tidak tepat (1 024, 2 048, 4 096, dan seterusnya). Mereka tidak pernah dimaksudkan untuk menjadi angka yang pasti, mereka adalah perkiraan biner dari basis 10 angka. Mereka hanya muncul sebagai kata jargon yang digunakan orang "teknologi".
Untuk membuat masalah menjadi lebih rumit, JEDEC telah menciptakan standar mereka sendiri untuk unit yang digunakan dalam sirkuit memori semikonduktor. Mari kita bandingkan beberapa unit JEDEC dengan unit SI (standar internasional):
Kb = Kilobit (JEDEC, 1 024 bit. Perhatikan huruf besar 'K' dan huruf kecil 'b')
kB = kiloBit (SI, 1 000 bit. Perhatikan huruf kecil 'k' dan huruf besar 'B')
b = bit (JEDEC, perhatikan huruf kecil 'b')
b = ??? (SI tidak mendefinisikan kata 'bit' sehingga penggunaannya dapat berubah-ubah)
B = byte (JEDEC, 8 bit. Perhatikan huruf besar 'B')
B = ???? (SI tidak mendefinisikan kata "byte" dan "B" digunakan untuk "Bel" [seperti dalam DeciBel])
KB = kilobyte (JEDEC, 1 024 bytes. Perhatikan huruf besar 'K' dan 'B')
kb = kilobyte (SI, 1 000 bytes. Perhatikan penggunaan huruf kecil 'k' dan huruf kecil 'B')
Intinya, tempat yang berbeda menggunakan awalan yang berbeda dengan definisi yang berbeda. Tidak ada aturan yang keras dan cepat tentang mana yang harus Anda gunakan, tetapi konsisten dengan yang Anda gunakan.
Karena tidak memilih, izinkan saya untuk menjelaskan mengapa Anda tidak dapat menghasilkan 1.000 dalam biner dengan menaikkannya ke bilangan bulat positif.
Sistem biner:
Perhatikan bahwa dalam sistem biner, kolomnya berlipat ganda setiap kali. Ini berbeda dengan sistem basis 10 yang meningkat sebesar 10 setiap kali:
10 kekuatan pertama dalam biner (basis 2) adalah:
2 0 = 1
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 64
2 7 = 128
2 8 = 256
2 9 = 512
2 10 = 1 024
Seperti yang Anda lihat, tidak mungkin untuk menaikkan biner 2 ke bilangan bulat positif apa pun untuk mencapai 1.000.
sumber