Daftar Isi:
- Sistem bilangan desimal
- oktal
- Selalu konvensi untuk mengekspresikan bilangan biner dengan menggunakan digit biner 4, 8, 32, atau 64 bahkan jika digit terdepan nol. Ini juga karena cara komputer dibangun secara internal.
Video: Developer Keynote (Google I/O '18) 2024
Variabel C ++ disimpan secara internal seperti yang disebut bilangan biner. Nomor biner disimpan sebagai urutan nilai 1 dan 0 yang dikenal sebagai bit . Sebagian besar waktu, Anda tidak perlu berurusan dengan angka pada tingkat bit; Namun, ada saat-saat ketika melakukannya mudah dilakukan. C ++ menyediakan seperangkat operator untuk tujuan ini.
Operator logika bitwise yang disebut beroperasi pada argumen mereka pada tingkat bit. Untuk memahami bagaimana mereka bekerja, periksa bagaimana komputer menyimpan variabel.
Sistem bilangan desimal
Angka yang Anda kenal dikenal sebagai angka desimal karena didasarkan pada angka 10. Secara umum, pemrogram mengekspresikan C ++ variabel sebagai angka desimal Jadi, Anda akan mengatakan bahwa nilai var adalah 123, misalnya.
Angka seperti 123 mengacu pada 1 * 100 + 2 * 10 + 3 * 1 . Masing-masing bilangan dasar - 100, 10, dan 1 - adalah kekuatan 10.
123 = 1 * 100 + 2 * 10 + 3 * 1
Dinyatakan dalam cara yang sedikit berbeda namun setara:
123 = 1 * 10 2 Ingat bahwa angka apapun pada daya nol adalah 1. Sistem bilangan lain Penggunaan bilangan dasar 10 untuk Sistem penghitungan batang, kemungkinan besar, dari kenyataan bahwa manusia memiliki 10 jari, alat penghitung asli. Alternatifnya adalah basis 20.
Jika anjing telah menemukan skema penomoran kami, mungkin berdasarkan angka 8 (satu digit dari setiap kaki tidak terlihat di bagian belakang kaki). Sistem
oktal
juga akan bekerja dengan baik:
12310 = 1 * 8 2
+ 7 * 8 1 3 dan 8 di sini mengacu pada sistem penomoran, 10 untuk bilangan desimal (alas 10) dan 8 untuk oktal (alas 8). Sistem penghitungan dapat menggunakan dasar positif apapun. Sistem bilangan biner Komputer pada dasarnya memiliki dua jari. (Mungkin karena itulah komputer sangat bodoh: Tanpa jempol yang berlawanan, mereka tidak dapat memahami apapun. Dan mungkin sekali lagi, mungkin tidak.) Komputer lebih suka menghitung menggunakan basis 2. Jumlah 123 10 akan dinyatakan sebagai: 123 10 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1
= 01111011 < 2
Selalu konvensi untuk mengekspresikan bilangan biner dengan menggunakan digit biner 4, 8, 32, atau 64 bahkan jika digit terdepan nol. Ini juga karena cara komputer dibangun secara internal.
Karena kata digit mengacu pada kelipatan sepuluh, digit biner disebut
bit . Istilahnya berasal dari bilangan biner (b-) (-it).Delapan bit membentuk satu byte. Sebuah kata biasanya dua atau empat byte. Dengan dasar kecil seperti itu, perlu menggunakan sejumlah besar bit untuk mengekspresikan bilangan. Tidak nyaman menggunakan ungkapan seperti 01111011
2 untuk mengekspresikan nilai biasa seperti 123
10
. Pemrogram lebih memilih untuk mengekspresikan angka dengan satuan byte, atau delapan bit. Sebuah digit tunggal empat bit pada dasarnya adalah basis 16, karena empat bit dapat mengekspresikan nilai apapun dari 0 sampai 15. Base 16 dikenal sebagai sistem penghitungan heksadesimal . Heksadesimal sering dikontrak menjadi hanya hex.
Heksadesimal menggunakan digit yang sama untuk angka 0 sampai 9. Untuk digit antara 9 dan 16, heksadesimal menggunakan enam huruf pertama alfabet: A untuk 10, B untuk 11, dan seterusnya. Jadi, 123 10 menjadi 7B 16 .
123 = 7 * 16 1 + B (yaitu, 11) * 16 0
= 7B 16 Karena pemrogram lebih suka mengekspresikan angka dalam 4, 8, 32, atau 64 bit, mereka juga lebih suka untuk mengekspresikan bilangan heksadesimal dalam 1, 2, 4, atau 8 digit heksadesimal bahkan ketika digit terdepan adalah 0. Akhirnya, sangat merepotkan untuk mengekspresikan bilangan heksadesimal seperti 7B < 16 menggunakan subskrip, karena terminal tidak mendukung subskrip. Bahkan pada pengolah kata, tidak merepotkan untuk mengubah font ke dan dari mode subscript hanya untuk mengetik dua digit. Oleh karena itu, pemrogram menggunakan konvensi untuk memulai angka heksadesimal dengan 0x (alasan untuk suatu keyakinan aneh kembali ke hari-hari awal C). Dengan demikian, 7B menjadi 0x7B. Dengan menggunakan konvensi ini, 0x7B sama dengan 123 (sementara 0x123 sama dengan 291.)
Semua operator matematika dapat dilakukan pada bilangan heksadesimal dengan cara yang sama seperti yang diterapkan pada bilangan desimal. Alasan mengapa kita tidak bisa melakukan perkalian seperti 0xC * 0xE di kepala kita lebih berkaitan dengan tabel perkalian yang kita pelajari di sekolah daripada pada batasan dalam sistem bilangan.