Daftar Isi:
Video: KONVERSI DARI BILANGAN HEKSADESIMAL KE BILANGAN DESIMAL 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 bit tertentu yang Anda gunakan untuk mewakili angka. Kadang-kadang, bagaimanapun, praktis dan nyaman untuk bermain-main dengan angka pada tingkat bit - jadi C ++ menyediakan satu set operator untuk tujuan itu.
Operator logika yang disebut bitwise beroperasi pada argumen mereka pada tingkat bit. Untuk memahami bagaimana mereka bekerja, pertama-tama periksa bagaimana komputer menyimpan variabel.
Sistem bilangan desimal
Angka yang sudah Anda kenal sejak saat pertama kali mengandalkan jari Anda dikenal sebagai angka desimal karena berbasis pada nomor 10. Secara umum, programmer mengekspresikan variabel C ++ sebagai angka desimal. Dengan demikian Anda bisa menentukan nilai var seperti (katakanlah) 123, tapi pertimbangkan implikasinya.
Nomor seperti 123 mengacu pada 1 * 100 + 2 * 10 + 3 * 1. Semua bilangan dasar ini - 100, 10, dan 1 - adalah kekuatan 10
123 = 1 * 100 + 2 * 10 + 3 * 1
Dinyatakan dalam cara yang sedikit berbeda (tapi setara), 123 terlihat seperti ini:
123 = 1 * 10 < 2 + 2 * 10 1 + 3 * 10 0 Ingatlah bahwa
bilangan terhadap kekuatan nol adalah 1. Sistem bilangan lain
Baiklah, gunakan 10 sebagai dasar (atau
dasar ) dari sistem penghitungan kami yang mungkin berasal dari 10 jari manusia itu, alat penghitung asli. Dasar alternatif untuk sistem penghitungan bisa dengan mudah adalah 20.
oktal seperti itu akan berhasil juga: 123
10 = 1 * 8 2 + 7 * 8 1 < + 3 * 8 0 = 10 kecil 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. Komputer lebih suka menghitung menggunakan basis 2. Jumlah 123 10
akan dinyatakan seperti ini:
123
10 = 0 * 2 7
+ 1 * 2 < 6 + 1 * 2 5 + 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 123 10 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 01111011 2 Konvensi komputer mengekspresikan bilangan biner dengan menggunakan digit biner 4, 8, 16, 32, atau bahkan 64, bahkan jika digit terdepan adalah 0.Ini juga karena cara komputer dibangun secara internal. Karena kata digit mengacu pada kelipatan 10, digit biner
disebut
bit (singkatan dari digit biner >). A byte terdiri dari 8 bit. (Memanggil digit biner byte-it sepertinya tidak seperti ide bagus.) Memori biasanya diukur dalam satuan byte (seperti gulungan diukur dalam satuan selusin tukang roti). Dengan dasar kecil seperti itu, Anda harus menggunakan sejumlah bit besar untuk mengekspresikan bilangan. Manusia tidak ingin kerumitan menggunakan ungkapan seperti 011110112 untuk mengekspresikan nilai duniawi seperti 123 10 . Pemrogram lebih memilih untuk mengekspresikan angka dengan menggunakan sejumlah bit. Sistem oktal - yang didasarkan pada 3 bit - adalah sistem biner default pada hari-hari awal C. Kami melihat sisa-sisa ini bahkan sampai hari ini - sebuah konstanta yang dimulai dengan angka 0 diasumsikan sebagai oktal di C ++. Jadi, garis:
cout << "0173 =" << 0173 << endl; menghasilkan output sebagai berikut: 0173 = 123 Namun, oktal hampir sepenuhnya diganti dengan sistem heksadesimal, yang didasarkan pada digit 4 bit.
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 , seperti ini: 123 = 7 * 16
1 + B (yaitu 11) * 16 0 = 7B 16
Pemrogram lebih memilih untuk mengekspresikan bilangan heksadesimal dalam kelipatan 4 digit heksadesimal bahkan ketika digit terdepan dalam setiap kasus adalah 0. Akhirnya, siapa yang ingin mengekspresikan bilangan heksadesimal seperti 7B 16 dengan menggunakan subskrip? Terminal bahkan tidak mendukung subscripts. Bahkan pada pengolah kata, ini adalah hambatan untuk mengubah font ke dan dari mode subskrip hanya untuk mengetik dua digit buruk. Oleh karena itu, programmer (tidak bodoh, mereka) menggunakan konvensi untuk memulai angka heksadesimal dengan angka 0x. Dengan demikian, 7B menjadi 0x7B. Dengan menggunakan konvensi ini, bilangan heksadesimal 0x7B sama dengan 123 desimal sedangkan 0x123 heksadesimal sama dengan 291 desimal. Potongan kode
cout << "0x7B =" << 0x7B << endl; cout << "0x123 =" << 0x123 << endl;
menghasilkan output berikut: 0x7B = 123 0x123 = 291 Anda dapat menggunakan semua operator matematika pada bilangan heksadesimal dengan cara yang sama seperti yang akan Anda gunakan pada bilangan desimal. Jika Anda benar-benar ingin, Anda dapat menulis bilangan biner di C ++ '14 menggunakan awalan '0b'. Dengan demikian, 123 menjadi 0b01111011.