Thursday, 19 March 2015

5.3.4.Hexadecimal, Octadecimal, dan Binary

Kenapa harus ada hex, octa dan binary? Dalam kehidupan nyata kita menggunakan base-10 dimana pengulangan angka setiap 10 angka, dan ketika masuk kedalam komputer para programer memdapatkan kenyamanan dengan menggunakan type number tersebut, memudahkan pemetaan ke bytes dan bit. 

Hexadecimal merupakan base-16 mulai dari angka 0 sampai hurup f (0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f). Penulisannya mulai dari 0(nol) + x (hurup 'x') dan kemudian angka hexa-nya.


  • >>> 0x00         # nol - x -nol - nol
  • 0
  • >>> 0xff          # nol - x - f - f
  • 255
  • >>> 0xfff          
  • 4095
  • >>> 0x12c56f
  • 1230191
  • >>>
  • >>> 0x00,0x99,0xaa,0x19af
  • (0, 153, 170, 6575)
  • >>>
  • >>> 0xffff,0xffffffffff
  • (65535, 1099511627775)
  • >>> 


Octadecimal merupakan base-8, mulai dari angka 0 sampai 7 ( 0,1,2,3,4,5,6,7 ). Penulisannya mulai dari 0(nol) + o (hurup 'o') dan kemudian angka octa-nya.

  • >>> 0o00      # nol - hurup 'o' - nol - nol
  • 0
  • >>> 0o77         # nol - hurup 'o' -tujuh - tujuh
  • 63
  • >>> 0o7777
  • 4095
  • >>> 0o77777777
  • 16777215
  • >>> 


Binary merupakan base-2, yaitu 0 ( nol ) dan 1 (satu). Penulisannya mulai dari 0(nol) + b (hurup 'b') dan kemudian angka binier-nya.

  • >>> 0b0          # nol - hurup 'b' - nol
  • 0
  • >>> 0b000000000000000  # nol - hurup 'b' - nol semua
  • 0
  • >>> 0b1    # nol - hurup'b' - satu
  • 1
  • >>> 0b1111  # nol - hurup'b' -satu semua
  • 15
  • >>> 0b11111111
  • 255
  • >>> 0b1010101010111100100101
  • 2797349
  • >>> 


Sekarang kita lihat untuk angka 255 (dua ratus lima puluh lima) pada ketiga type tersebut (siapa tahu membunyikan bell di kepala). Dan harus selalu ingat, angka pertama itu bukan angka 1 (satu), melainkan 0 (nol)

  • >>> 0xff
  • 255
  • >>> oct(255)
  • '0o377'
  • >>> bin(255)
  • '0b11111111'
  • >>> 
  • >>> hex(64), oct(64), bin(64)
  • ('0x40', '0o100', '0b1000000')
  • >>>
  • >>> hex(128), oct(128), bin(128)
  • ('0x80', '0o200', '0b10000000')
  • >>>
  • >>> hex(512), oct(512), bin(512)
  • ('0x200', '0o1000', '0b1000000000')
  • >>> 


Dengan menggunakan fungsi 'int' bisa mengkonversikan sebuah string angka menjadi integer. 

  • >>> int('255')
  • 255
  • >>> 


int('255') merupakan konversi dari sebuah string '255' menjadi integer (tidak ada yang aneh bukan?) sehingga :

  • >>> int('255',16)
  • 597
  • >>> 


(DUAR!) Maksud diatas adalah sebuah string '255' dengan base-16, kemudian dijadikan integer.

  • >>> hex(597)
  • '0x255'
  • >>> int(0x255)
  • 597
  • >>>
  • >>> oct(1000)
  • '0o1750'
  • >>> int(0o1750)
  • 1000
  • >>> int('1750',8)
  • 1000
  • >>>
  • >>> int('ff',16)
  • 255
  • >>> 


Ada lagi fungsi yang sangat menarik yaitu 'eval ' . Fungsi ini cukup berbahaya, walaupun sedikit lebih pelan bekerjanya, fungsi ini meng-complie dan menjalankan sebuah string menjadi sebuah program, belum sampai disitu, program tersebut diasumsikan bekerja dengan sumber yang terpercaya, jadi hati-hati dengan fungsi ini.

  • >>> eval('1028')
  • 1028
  • >>> eval('0xffffff')
  • 16777215
  • >>> eval('0o7777')
  • 4095
  • >>> eval('0b11111111')
  • 255
  • >>> 

No comments:

Post a Comment