Konversi NIM (desimal) ke biner

dibuat oleh Azhar cuma untuk iseng saja
 avatar
binariez
c_cpp
4 years ago
2.1 kB
39
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 program
Editor is loading...