Selama ini kita sering menggunakan tipe data Integer,
ternyata masih banyak diantara kita yang tidak mengerti dengan tipe data ini. Yang
kita tahu tipe data ini untuk bilangan bulat (tidak berkoma).
Panjang range data yang bisa ditampung oleh tipe data ini
adalah 4 byte ( -2.147.483.648 s/d 2.147.483.647). sedangkan jika menggunakan
unsigned int maka range data yang nya adalah 0 s/d 4.294.967.295 (unsigned
artinya nilainya positif semua)
Jika pada bahasa C untuk mencetak nilai %d untuk integer
sedangkan untuk unsigned menggunakan %u.
Misalnya ada program seperti ini:
#include<stdlib.h>
#include<stdio.h>
int main(){
int a= 2147483649;
printf("a1=%d\n",a);
system("pause");
return 0;
}
Berapa kah output dari program diatas?? Jika anda menjawab
a1=2147483649,
maka tentu saja jawab itu salah, karena range seperti yang sudah dijelaskan
diatas untuk integer ( -2.147.483.648 s/d 2.147.483.647). jawaban yang
benar adalah -2.147.483.647. tahu
kenapa?? Hehe, sabar yaa…
Biar gampangnya kita akan menggunakan simulasi 4 bit ( berpikir sesuatu yang mudah untuk hal yang sulit :)
Maka nilai maximal untuk data
integer (Tmax)= 2.147.483.647, sedangkan data yang kita deklarasikan diatas a= 2147483649,
kelebihan dua (2) dari daya tamping maximal nya, maka data berikutnya yang bisa
ditampung bernilai minus, jika kekurangan dua, maka nilai angka dua berikutnya
jika dilihat dari tabel diatas adalah: -2.147.483.647. jadi jangan bingung lagi
jika data yang kita deklarasikan tidak tampil seperti yang kita harapkan.
contoh berikutnya :
#include<stdlib.h>
#include<stdio.h>
int main(){
unsigned int a=
2147483649;
unsigned int b=
4294967298 ;
printf("a=%u\n",a);
printf("b=%u\n",b);
system("pause");
return 0;
}
berapa kah outputnya?
jawab yang benar:
a= 2147483649
b= 2
sudah tahu kenapa bukan? yup benar sekali(emang siapa yang jawab ya :D), karena tipe data kita unsigned int jadi nilai maximal adalah 4294967295. untuk nilai a tidak ada masalah, kenapa nilai b=2 ya :).. itu sama dengan hal penjelasan pada saat penggunanaan tipe data integer tadi. karena batas maximal 4294967295 sedangkan kita mendeklarasikan 4294967298, maka kelebihan 3. jadi tiga digit berikutnya akan dimulai dari nol (karena nilai sudah sampai di Umax, maka akan di ulang lagi mulai dari nol)
mari
berkenalan lebih lanjut dengan integer di posting berikutnya.:)
No comments:
Post a Comment