Monday, June 11, 2012

<< (Bitwise Left Shift)

Operator << (Bitwise Left Shift) digunakan untuk menggeser bit-bit sebelah kiri dari operand A ke kiri sebanyak yang ditentukan oleh operand B. Untuk setiap pergeseran sejumlah tertentu bit dibagian kiri akan hilang, dan akan memunculkan 0 dibagian kanan yang jumlahnya sama banyak dengan bit yang yang hilang tersebut.

Sintaks:

A << B

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+.

Cara kerja operator ini pertama-tama mengkonversi nilai dari operand A ke dalam base2. Setelah nilai dari operand A tersebut didapatkan representasi base2-nya, bit-bit dari operand A yang ada di sebelah kiri tersebut digeser ke kiri sebanyak yang ditentukan oleh operand B. Untuk setiap pergeseran sejumlah tertentu bit dibagian kiri akan hilang, dan akan memunculkan 0 dibagian kanan yang jumlahnya sama banyak dengan bit yang yang hilang tersebut.

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 Left Shift:

var A = 11; var B = 3; document.write(A << B); //88

Representasi base2 dari 11 adalah 00000000000000000000000000001011, di dalam kasus contoh di atas bit-bit sebelah kiri dari 00000000000000000000000000001011 akan digeser ke kiri sebanyak 3.

Untuk bit-bit yang berwarna merah di bawah adalah bit-bit yang akan hilang, karena adanya operasi pergeseran bit ke kiri sebanyak 3:

00000000000000000000000000001011

Karena di dalam operator ini, banyaknya bit yang hilang di sebelah kiri akan memunculkan 0 dibagian kanan yang sama banyaknya dengan bit yang hilang dibagian kiri, dan akan menjadi:

00000000000000000000000001011000

Untuk 00000000000000000000000001011000 mempunyai nilai yang sama seperti nilai 88 (base10).