Konversi NIM (desimal) ke biner
dibuat oleh Azhar cuma untuk iseng sajabinariez
c_cpp
4 years ago
2.1 kB
43
Indexable
/*19 Nopember 2021
Azhar*/
#include <iostream> //diperlukan untuk menggunakan fungsi input/output
#include <sstream> //diperlukan untuk menggunakan class stringstream
using namespace std; //diperlukan untuk menggunakan cout, cin, endl, stringstream
int main() //inisiasi program
{
//deklarasi variabel awal
int a[25], i=0, nim; //'a' sebagai array integer
stringstream langkah,hasil; //stringstream digunakan untuk menyimpan data output string (cout)
//input data
cout<<"Masukkan NIM: "; cin>>nim; //input data nim
cout<<"Langkah konversi "<<nim<<" ke biner ialah sebagai berikut:\n\n"; //hanya output pelengkap
//algoritma konversi
while(nim>0){ //fungsi pengulangan. program akan terus diulang selama nilai nim masih lebih dari 0.
a[i]=nim%2; //a[indeks array] = nim modulus 2
if(i==0){ //kondisi jika nilai indeks sekarang adalah 0
langkah<<nim<<("/2 = ")<<nim/2<<" dengan sisa "<<a[i]<<" <===MSB\n"; //maka hasil perhitungan awal ditetapkan sebagai nilai MSB
}
else if (nim+1==2){ //dan kondisi jika nilai nim=2
langkah<<nim<<("/2 = ")<<nim/2<<" dengan sisa "<<a[i]<<" <===LSB\n"; //maka hasil perhitungan akan ditetapkan sebagai nilai LSB
}
else{ //atau kondisi jika tidak termasuk dari kedua kondisi diatas
langkah<<nim<<("/2 = ")<<nim/2<<" dengan sisa "<<a[i]<<endl; //maka ditetapkan sebagai nilai diantara MSB dan LSB
}
i++; //penambahan inkremen i sebagai indeks array 'a' sebanyak 1 setiap pengulangan
nim=nim/2; //nilai nim dibagi sebanyak 2 setiap pengulangan
}
//menampilkan hasil konversi akhir
cout<<langkah.str(); //menampilkan langkah-langkah penghitungan nilai biner
for(i=i-1;i>=0;i--){ //pengulangan untuk menyusun nilai hasil konversi
hasil<<a[i];} //menyusun nilai biner dari LSB ke MSB
cout<<"\nMaka, hasil akhir konversi: " <<hasil.str(); //menampilkan hasil konversi ke nilai biner yang sudah disusun
return 0; //memeriksa bahwa tidak ada eror di program
}//akhir dari programEditor is loading...