Tulisan ini adalah respon untuk salah satu komentar temen-temen dalam tulisan saya yang sebelumnya yakni pada pembahasan tentang Konversi String ke angka dan sebaliknya. Komentar tersebut menanyakan tentang bagaimana menjumlahkan dua buah angka yang mencapai trilyunan atau lebih (lebih dari 10 digit).
Kebetulan sekali beberapa waktu yang lalu saya mendapatkan sebuah tabel komparasi beberapa type data yang saya dapatkan setelah browsing di beberapa tempat (Wikipedia, cplusplus.com dan cnx.org). Berikut adalah tabel Komparasinya:
|
Type Data |
Minimum allowed range |
Typical allowed range |
Typical size in bytes
|
|
char |
−127 → +127 atau 0 → +255 |
−128 → +127 atau 0 → +255 |
1
|
|
signed char |
−127 → +127 |
−127 → +127 |
1
|
|
unsigned char |
0 → +255 |
0 → +255 |
1
|
|
signed short int |
−32767 → +32767 |
−32768 → +32767 |
2
|
|
unsigned short int |
0 → +65535 |
0 → +65535 |
2
|
|
signed int |
−32767 → +32767 |
−32768 → +32767 (antique systems) −2147483648 → +2147483647 |
2 dan 4
|
|
unsigned int |
0 → +65535 |
0 → +65535 (antique systems) 0 → +4294967295 |
2 dan 4
|
|
signed long int |
−2147483647 → +2147483647 |
−2147483648 → +2147483647 −9223372036854775808 → +9223372036854775807 (64-bit systems) |
4 atau 8
|
|
unsigned long int |
0 → +4294967295 |
0 → +4294967295 0 → +18446744073709551615 (64-bit systems) |
4 atau 8
|
|
signed long long int |
−9223372036854775807 → +9223372036854775807 |
−9223372036854775808 → +9223372036854775807 |
8
|
|
unsigned long long int |
0 → +18446744073709551615 |
0 → +18446744073709551615 |
8
|
|
float |
1×10−37 → 1×1037 |
1×10−37 → 1×1037 |
4
|
|
double |
1×10−37 → 1×1037 |
1×10−308 → 1×10308 |
8
|
|
long double |
1×10−37 → 1×1037 |
1×10−308 → 1×10308 1×10−4932 → 1×104932 (x87 FPU systems) |
8, 12, atau 16 |
Contoh program untuk menjumlahkan bilangan yang angkanya sampai trilyunan lebih yakni:
#include <iostream>
using namespace std;
int main() {
long long int a = 3254876451465323130;
long long int b = 3659854525665625356;
cout << a+b << endl;
return 0;
}
Dengan hasil:
$ ./a.out
6914730977130948486
Semoga bisa bermanfaat.