2.Dideklarasikan array 1 dimensi yang dibuat dengan it x[15].Jika diketahui &x[3] =1000 Hexadecimal. Ditanyakan alamat elemen x[8] atau x&[8]
- &x[9] = 1018H
- &x[8] = 1014H
Pembahasan
Pengalamatan Elemen Array
Nomor 1
Tidak jelas tipe data array-nya apa.
Asumsi: tipe data array adalah integer
Deklarasi array: int x[15]
Alamat x[3]: &x[3] = 1000H
Untuk menghitung alamat x[9], kita harus tahu besar alokasi memori untuk tipe data integer. Tipe data int membutuhkan 4 byte, sehingga:
&x[9] = &x[3] + (9–3)×4 [desimal]
⇒ &x[9] = 1000H + 24 [desimal]
⇒ &x[9] = 1000H + 0018H
⇒ &x[9] = 1018H
Nomor 2
Deklarasi array: int x[15]
Besar alokasi memori setiap elemen: 4 byte (karena tipe elemen array adalah integer)
Alamat x[3]: &x[3] = 1000H
&x[8] = &x[3] + (8–3)×4 [desimal]
⇒ &x[8] = 1000H + 20 [desimal]
⇒ &x[8] = 1000H + 0014H
⇒ &x[8] = 1014H
__________________________
Tambahan
Pada penyelesaian di atas, 24 desimal = 0018H, maksudnya adalah 24 desimal sama dengan 18 heksadesimal.
Proses konversinya adalah sebagai berikut.
24 : 16 = 1 SISA 8
1 : 16 = 0 SISA 1
Sisa-sisa pembagian tersebut dirangkaikan dari yang terakhir hingga yang pertama, maka kita memperoleh: 18
Sehingga:
24₍₁₀₎ = 18₍₁₆₎ atau 18H
⇒ Agar menjadi 4 digit heksadesimal, kita sisipkan (padding) 2 digit 0 di depan, menjadi 0018H
Begitu pula untuk nomor 2, yaitu 20 desimal = 0014H.
[answer.2.content]