↑

Main Page

# Left shift

Bit from First Number Bit from Second Number

Result

1

1

0

1

0

1

0

1

1

0

0

0

To XOR the numbers 25 and 3 together, use the following code:

var iResult = 25 ^ 3;

alert(iResult); //outputs “26”

The result of a bitwise XOR between 25 and 3 is 26:

25 = 0000 0000 0000 0000 0000 0000 0001 1001

2 = 0000 0000 0000 0000 0000 0000 0000 0011

---------------------------------------------

XOR = 0000 0000 0000 0000 0000 0000 0001 1010

As you can see, four bits contain 1 in either number, so these are passed through to the result. The binary

code 11010 is equal to 26.

Left shift

The left shift is represented by two

less-than

signs (

<<

). It shifts all bits in a number to the left by the

number of positions given. For example, if you take the number 2 (which is equal to 10 in binary) and

shifted it 5 bits to the left, you end up with 64 (which is equal to 1000000 in binary):

var iOld = 2; //equal to binary 10

var iNew = iOld << 5; //equal to binary 1000000 which is decimal 64

Note that when the bits are shifted, five empty bits remain to the right of the number. The left shift fills

these bits with the value in the 32nd bit (the sign bit) to make the result a complete 32-bit number

(Figure 2-6).

Figure 2-6

00000000000000000000000000000010

The number 2

"Secret" sign bit

00000000000000000000000001000000

The number 2 shifted to the left 5 bits (the number 64)

Padded with zeros

41

ECMAScript Basics

05_579088 ch02.qxd 3/28/05 11:35 AM Page 41

Free JavaScript Editor
Ajax Editor

©

↓