Senin, 25 November 2013

Mencetak Output Dalam Biner dari Bilangan Integer (C / C++)

Biner adalah sistem bilangan yang digunakan sebagai representasi angka yang dikenali prosesor. Dalam keadaan tertentu, kita perlu mencetak wujud angka dalam biner untuk memudahkan pencarian kesalahan. Pengetahuan tentang biner sangat diperlukan terutama saat mengoperasikan bilangan yang membutuhkan ketelitian hingga bit pada sebuah nilai. Contoh pemrograman yang membutuhkan ketelitian ini adalah ketika mengembangkan sebuah fungsi yang menggunakan bit-bit pada parameter sebagai flag. Ketika terjadi kesalahan, mungkin akan sulit sekali menemukan dimana letak kesalahannya, sehingga kita perlu mengonversi bilangan bulat yang akan diperiksa ke dalam bentuk karakter, kemudian mencetaknya.

Sebelum mempelajari bagaimana cara mencetak ke bentuk biner, anda akan lebih mudah memahaminya jika sekarang anda mengetahui bagaimana sebenarnya bilangan biner itu direpresentasikan.

Pada bilangan desimal, setiap angka merupakan kelipatan dari 10n. Dimana n di bagian paling kanan adalah 0, kirinya n+1, kirinya lagi n+2, dst.
Misal 324.
3 x 102 + 2 x 101 + 4 x 100.
= 300 + 20 + 4
= 324

Biner tidak jauh berbeda dengan desimal, hanya saja merupakan kelipatan dari 2n
Misalnya 101.
1 x 22 + 0 x 21 + 1 x 20.
= 4 + 0 + 1
= 5

nb : semua nilai dipangkatkan 0 = 1, kecuali 0. bila dipangkatkan 0 hasilnya 0.

Cara untuk mencetak nilai integer ke dalam bentuk desimal, adalah kebalikan dariproses mengubah nilai biner ke desimal. Adapun flow-chartt nya adalah sebagai berikut.

 Kode C :
#include <stdio.h>
#include <string.h>
char buff[33];
int main(int argc, char **argv)
{
    unsigned long nilai = 5;
    unsigned int i = 0;
    do
    {
        buff[i] = (nilai % 2) + 0x30;
        i++;
        nilai /= 2;
    }while(nilai / 2 != 0);
    buff[i++] = nilai + 0x30;
    buff[i] = 0;
    strrev(buff);
    printf(buff);
}

Selamat mencoba.. :)
Load disqus comments

0 comments