Monday, June 11, 2012

~ (Bitwise NOT)

Operator ~ (Bitwise NOT) digunakan untuk mengkomplemenkan (bit 0 di ubah menjadi 1 dan bit 1 di ubah menjadi 0) semua bit-bit dari operand A.

Sintaks:

~A

Operator ~ adalah operator standard JavaScript 1.0+, JScript 1.0+, ECMAScript 1.0+ dan di dukung Google Chrome Beta+, Firefox 1.0 (Gecko 1.7)+, Internet Explorer 3+, Netscape Navigator 2.0+, Opera 3.0+, Safari 1.0+.

Untuk jelasnya dapat di lihat di dalam tabel berikut:

Bitwise NOT Bit Hasil
~ 0 1
~ 1 0

Cara kerja operator ini pertama-tama dengan mengkonversi nilai dari operand A ke dalam base2. Setelah didapatkan representasi base2-nya, semua bit-bit dari operand A tersebut dikomplemenkan.

Untuk mendapatkan representasi base2 dari nilai bilangan bulat positif, anda bisa gunakan metode Number.toString(radix), untuk radix harus diberikan nilai 2. Misalnya ingin mengetahui representasi base2 dari nilai 10, jika dijalankan dengan metode Number.toString(), nilai 10 mempunyai representasi base2-nya 1010:

var A = 10; document.write(A.toString(2)); //1010

Karena di dalam atau ketika bekerja dengan operator berkategori Bitwise, panjang bit yang ada akan ditreatmen sepanjang 32-bit, 1010 akan menjadi 00000000000000000000000000001010.

Untuk mendapatkan representasi base2 dari nilai bilangan bulat negatif, anda dapat merujuk ke artikel Mendapatkan Representasi Binary dari Angka Negatif.

Contoh dari operasi operator Bitwise NOT:

var A = 11; document.write(~A); //-12

Menggunakan operator Bitwise NOT ini, nilai dari operand A dikonversi ke dalam base2, nantinya semua bit-bit dari operand A dikomplemenkan:

11 = 00000000000000000000000000001011 (bentuk 4-bitnya: 1011)
     11111111111111111111111111110100 (bentuk 4-bitnya: 0100)

Berdasarkan pengkomplemenan di atas, hasil dari pengkomplemenan representasi base2 dari 11 adalah 11111111111111111111111111110100.

Untuk 11111111111111111111111111110100 mempunyai nilai yang sama seperti nilai -12 (base10).