Bagaimana bit dan byte bekerja dalam memori komputer

12

Jika Anda telah memiliki komputer lebih lama dari sekedar rehat kopi, Anda pasti pernah melihat istilah bit dan byte yang sering digunakan. Mereka adalah unit standar untuk mengukur RAM, kapasitas hard disk, dan ukuran file di semua penampil file modern.

Anda mungkin mendengar promosi penjualan yang mengklaim bahwa mesin memiliki prosesor Pentium 32-bit dengan RAM 64 megabyte dan ruang hard disk 2,1 gigabyte. Spesifikasi ini selalu muncul di panduan teknis dan tutorial. Memahami arti sebenarnya dari istilah-istilah ini membantu Anda berhenti menebak-nebak dan mulai mengetahuinya.

Bilangan Desimal

Untuk memahaminya sedikit, bandingkan dengan sesuatu yang familier: digit.

Digit adalah slot tunggal untuk nilai antara 0 dan 9. Kami menggabungkannya untuk menghasilkan angka yang lebih besar. Ambil 6.357. Ini memiliki empat digit. Angka 7 duduk di “tempat 1”. Angka 5 ada di posisi 10an. Angka 3 berada di posisi 100an. Angka 6 menempati posisi 1.000an.

Anda dapat menuliskannya secara eksplisit:

(61000) + (3 100) + (510) + (7 1) = 6000 + 300 + 50 + 7 = 6357

Atau gunakan kekuatan 10. Menggunakan simbol tanda sisipan (^) untuk “pangkat”, akan terlihat seperti ini:

(610^3) + (3 10^2) + (5*10^1) + (10^0) = 6000 + 300 + 50 + 7 = 6357

Setiap digit adalah placeholder untuk pangkat 10 berikutnya yang lebih tinggi. Digit pertama dimulai dari 10^0.

Ini terasa normal karena kami menggunakan sistem base-10 setiap hari. Kemungkinan besar ada karena manusia mempunyai sepuluh jari. Jika kita berevolusi dengan delapan jari, kita mungkin akan menggunakan sistem basis-8. Anda dapat menggunakan basis apa pun yang Anda inginkan. Basis yang berbeda masuk akal dalam konteks yang berbeda.

Komputer menggunakan sistem bilangan basis 2. Ia juga dikenal sebagai sistem bilangan biner.

Sistem Base-2 dan Byte 8-bit

Komputer menggunakan basis-2 karena murah. Anda bisa membuat komputer base-10. Itu akan sangat mahal. Perangkat keras Base-2 relatif terjangkau.

Jadi komputer menggunakan bilangan biner. Mereka menggunakan digit biner, bukan angka desimal. Kata bit adalah singkatan dari “Binary digIT”.

Digit desimal memiliki 10 nilai: 0 hingga 9. Bit hanya memiliki dua nilai: 0 dan 1. Bilangan biner hanyalah rangkaian 0 dan 1, seperti 1011.

Untuk mencari nilainya, gunakan pangkat basis 2, bukan basis 10.

(1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1 * 2^0) = 8 + 0 + 2 + 1 = 11

Setiap bit mewakili peningkatan pangkat 2. Menghitung dalam biner sangatlah mudah. Berikut perbandingan desimal dan biner dari 0 hingga 20:

  • 0 = 0
  • 1 = 1
  • 2 = 10
  • 3 = 11
  • 4 = 100
  • 5 = 101
  • 6 = 110
  • 7 = 111
  • 8 = 1000
  • 9 = 1001
  • 10 = 1010
  • 11 = 1011
  • 12 = 1100
  • 13 = 1101
  • 14 = 1110
  • 15 = 1111
  • 16 = 10.000
  • 17 = 10001
  • 18 = 10010
  • 19 = 10011
  • 20 = 10100

Perhatikan carry-overnya. Di nomor 2, biner dibawa untuk pertama kalinya. Jika suatu bit adalah 1 dan Anda menambahkan 1, maka bit tersebut menjadi 0 dan bit berikutnya menjadi 1. Peralihan dari 15 ke 16 akan melewati empat bit, mengubah 1111 menjadi 10.000.

Bit jarang bepergian sendirian. Mereka dibundel ke dalam koleksi 8-bit. Paket ini disebut byte.

Mengapa delapan bit dalam satu byte? Ini seperti menanyakan mengapa ada 12 butir telur dalam selusin. Orang-orang memilih 8 bit melalui trial and error selama 50 tahun terakhir.

Dengan 8 bit, Anda dapat mewakili 256 nilai. Rentangnya dari 0 hingga 255.

  • 0 = 00000000
  • 1 = 00000001
  • 2 = 00000010
  • 254 = 11111110
    *255 = 11111111

Di Cara Kerja CD, Anda mengetahui bahwa CD menggunakan 2 byte per sampel. Itu 16 bit. Setiap sampel dapat berkisar dari 0 hingga 65.535.

  • 0 = 0000000000000000
  • 1 = 0000000000000001
  • 2 = 0000000000000010

  • 65534 = 1111111111111110
    65535 = 1111111111111111

Selanjutnya, kita akan melihat salah satu cara byte digunakan.

Bagaimana Pengkodean ASCII dan Matematika Biner Mendukung Data Anda

Teks bukanlah keajaiban. Itu hanya angka yang memakai kostum.

Saat Anda mengetik kalimat, komputer Anda tidak melihat huruf. Ia melihat nilai biner. Secara khusus, ini bergantung pada kumpulan karakter ASCII standar untuk mengubah penekanan tombol menjadi data. Dalam sistem ini, setiap nilai biner dari 0 hingga 127 dipetakan ke karakter tertentu. Kebanyakan sistem memperluasnya menjadi 256 nilai menggunakan byte penuh, menambahkan huruf dan simbol beraksen untuk bahasa internasional.

Namun kode inti 128 adalah fondasinya.

Pertimbangkan Notepad Windows 95/98. Jika Anda mengetik “Empat skor dan tujuh tahun yang lalu,” perangkat lunak mengalokasikan tepat satu byte memori per karakter. Ini termasuk spasi antar kata. Spasi kode ASCII 32. Periode 46. ‘A’ 65.

Cobalah sendiri.

Buat file bernama getty.txt. Ketik kalimat itu. Simpan itu. Buka penjelajah file Anda. Ukurannya 30 byte. Mengapa? Karena ada 30 karakter. Tambahkan satu kata. File bertambah dengan jumlah huruf dalam kata itu. Ini adalah rasio langsung 1:1.

Buka file sebagai data mentah, dan huruf-hurufnya hilang. Anda melihat angka.

Ini adalah representasi desimal dari kode ASCII. Tepatnya secara teknis, mesin hanya melihat biner. 32 menjadi 00100000. Namun logikanya berlaku: setiap byte menampung satu karakter.

32 nilai pertama (0 hingga 31) bukanlah huruf. Itu adalah kode kontrol. Pengangkutan kembali. Umpan garis. Bel berbunyi. Karakter sebenarnya yang dapat dicetak dimulai dari 32. Tanda baca muncul berikutnya. Lalu angka. Lalu huruf besar. Lalu huruf kecil. Anda dapat melihat grafik lengkapnya di Unicode.org, tetapi prinsipnya sederhana. Penyimpanan teks hanyalah daftar bilangan bulat ini.

Memahami Awalan Byte dan Matematika Biner

Setelah Anda memahami bahwa data hanyalah byte, Anda mengalami masalah baru: skala.

Satu byte itu kecil. Sebagian besar file berukuran besar. Jadi kita perlu awalan.

Kami menggunakan awalan byte untuk menunjukkan besaran. Kilo, mega, giga. Ini bukan hanya istilah pemasaran. Mereka adalah pengganda biner.

  • Kilo (K): $2^{10}$ = 1.024 byte
  • Mega (M): $2^{20}$ = 1.048.576 byte
  • Giga (G): $2^{30}$ = 1.073.741.824 byte
  • Tera (T): $2^{40}$ = ~1,1 triliun byte
  • Peta (P): $2^{50}$ = ~1,1 kuadriliun byte
  • Exa (E): $2^{60}$ = ~1,1 triliun byte
  • Zetta (Z): $2^{70}$
  • Yotta (Y): $2^{80}$

Kilo kira-kira seribu. Mega itu sejuta. Giga adalah satu miliar.

Saat seseorang mengklaim hard drive-nya berukuran “2 gigabyte”, yang mereka maksud adalah $2 \kali 2^{30}$ byte. Tepatnya 2.147.483.648 byte.

Kedengarannya abstrak sampai Anda memvisualisasikan datanya. CD standar menampung sekitar 650 megabyte. Tiga CD mengisi drive 2GB. Basis data terabyte adalah hal biasa. Basis data petabyte kemungkinan besar ada di fasilitas-fasilitas besar pemerintah. Skalanya tumbuh secara eksponensial.

Hal ini membawa kita ke matematika biner.

Ini beroperasi seperti matematika desimal, dengan satu batasan ketat. Setiap bit hanya bisa 0 atau 1.

Dalam desimal, kita menghitung 0-9. Ketika kita menekan 9 dan menambahkan 1, kita membawa 1 ke kolom berikutnya. Biner bekerja dengan cara yang sama, namun carry terjadi lebih cepat.

Ambil penjumlahan desimal:

Mulai dengan benar. $2+1=3$. Kolom berikutnya: $5+5=10$. Tulis 0, bawa 1. Berikutnya: $4+7+1(bawa)=12$. Tulis 2, bawa 1. Akhir: $0+0+1=1$. Hasil: 1203.

Sekarang, biner.

Bit paling kanan: $0+1=1$. Tidak ada barang bawaan.
Bit kedua: $1+1=10$. Tulis 0, bawa 1.
Bit ketiga: $0+1+1(membawa)=10$. Tulis 0, bawa 1.
Bit keempat: $0+0+1(membawa)=1$.

Hasilnya adalah 1001. Dalam desimal, hasilnya 9. Perhitungannya sama. Representasinya hanya basis-2, bukan basis-10.

Intinya

Bit adalah digit biner. Mereka adalah 0 atau 1.
Byte adalah kelompok 8 bit.
Teks hanyalah urutan byte yang dipetakan ke kode ASCII.
Ukuran penyimpanan diukur dalam pangkat biner 1.024.

Ini tidak rumit. Itu hanya hal mendasar.

Untuk mendalami logika boolean dan implementasi gerbang, lihat cara kerja penjumlahan boolean. Sisanya hanya menghitung dalam biner.