Program C Languange untuk mengubah bilangan desimal ke biner

Screenshot-2021-09-27-180440.pnghalo semua, saya dapet kode di gambar itu dari web luar negri yang membahas program konversi bilangan desimal ke biner dengan bahasa C, nama variabelnya sudah saya ubah dikit2. Saya mau tanya bagaimana penjelasan dari kode tersebut sehingga hasilnya sudah sesuai? seperti kenapa i nya harus 1, kenapa dikali 10 di akhir, dll. terima kasih sebelumnya.
oiya itu b = 0 ya, maaf ketutupan hehe
avatar nyepill

@nyepill

1 Kontribusi 0 Poin


Jawaban

10 adalah pecahan desimal 0 sampai 9

conthoh:
d = 19
modulus tanda `%` adalah untuk membagi hasil `9 % 3` hasilnya 0 sedankan "1 % 3", "4 % 3", dan "7 % 3" hasilnya 1

pertama 19 % 2 hasilnya 1 dapat 9
kedua       9 % 2 hasilnya 1 dapat 4
ketiga       4 % 2 hasilnya 0 dapat 2
keempat   2 % 2 hasilnya 0 dapat 1
kelima       1 % 2 hasilnya 1 dapat 0 

bilangan decimal 19 adalah 10011
avatar lionkip

@lionkip

60 Kontribusi 46 Poin


untuk penamaan, printf dan scanf ga perlu di jelasin yaa

s = d%2;
% itu gampangnya untuk mencari tau sisa pembagian,,, 
contoh : 8%5=3 >>> 8/5=1 sisa 3
di kasus ini, pake %2 berarti hasilnya antara 1 atau 0 
d = d/2;
ini ga perlu di jelasin lah yaaa,,, intinya d/2,, dan sisanya jadi ga keliatan ato di bulatkan,,

b = b + (s * i);
skrip ini intinya buat penjumlahan satuan, puluhan, ratusan, dsb-nya,,, nanti bakal ketauan di pembahasan while nya

i = i * 10;
ini digunakan untuk membuat b (yang mau dipanggil) menjadi bernilai satuan, puluhan, ratusan, dsb 

while()
ga perlu di jelasin apa itu while, langsung contoh kasus
misal d = 14
maka masuk ke program:
s = 14%2 = 0
d = 14/2 = 7 >> d berubah menjadi 7
b = 0 + (0 *1) = 0 (ngambil datanya dari atas yang ketutupan itu)
i = 1 * 10 = 10 i berubah menjadi 10
============while=============
s = 7%2  = 1 >> karena d sudah berubah jd 7
d =7/2 = 3 >> d berubah menjadi 3
b = 0 + (1*10) = 10
i = 10 * 10 = 100
============while=============
s = 3%2  = 1
d =3/2 = 1 >> d berubah menjadi 1
b = 10 + (1*100) = 110
i = 100 * 10 = 1000
============while=============
s = 1%2  = 1
d =1/2 = 0 >> d berubah menjadi 0
b = 110 + (1*1000) = 1110
i = 1000 * 10 = 10000
-----------while berakhir karena !(d>0) -------------------

dapat di lihat dari hasilnya maka biner dari 14 adalah 1110 (b)
avatar mitsuky06

@mitsuky06

39 Kontribusi 15 Poin

  • maap kalo ga rapi, sangat berantakan,,, namun semoga dapat membantu - @mitsuky06


Login untuk gabung berdiskusi
premium logo tube

Hey, sedang ada diskon premium untuk akses semua kelas. Lihat di sini