Bahtiar Pakpahan wrote: > Rekans, saya ada kesulitan konversi hex ke desimal untuk 9 digit: > kalau 8 digit oke : > > $> printf "%u" 0x1011f5b9 > 269612473 > > $>printf "%u" 0x10011f5b9 > printf: "0x00010011f5b9" arithmetic overflow > > padahal kalau pake kalkulator bis keluar. > coba pake bahasa c hasilnya juga sama.
Karena default datatype di C adalang int, yang machine dependent, dalam hal ini untuk CPU 32bit sizeof (int) = 4 bytes x [1 byte = 8 bits (binary) = 2 digit hex] = 8 digit hex maximum (unsigned). 0x0 - 0xffffffff. Kalau mau lebih gede pakai "long long", sizeof (long long) = 8b printf '%llu\n' [0x0 - 0xffffffffffffffff] -- +-R-| Mozilla 1.1! Gecko/200208 |-H-| Powered by Linux 2.4.x |-7-+ |/v\ Agus Budy Wuysang MIS Department | | | Phone: +62-21-344-1316 ext 317 GSM: +62-816-1972-051 | +------------| http://www.fasw.co.id/person/supes/ |-------------+ -- Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Dapatkan FAQ milis dg mengirim email kosong ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3
