• No results found

Bitwise shift right and assign (>>=) (Operator/assignment)

Destructively bitwise rightwards shift the first of two operands. Availability: ECMAScript edition – 2

JavaScript – 1.0 JScript – 1.0

Internet Explorer – 3.02 Netscape – 2.0

Netscape Enterprise Server – 2.0 Opera – 3.0

Property/method value type: Number primitive

JavaScript syntax: - anOperand1 >>= anOperand2 anOperand1 A value to be shifted and assigned to Argument list:

="c2">anOperand2 ="c3">A distance to shift anOperand1

Bitwise shift rightwards the left operand by the number of bits in the right operand and assign the result to the left operand.

This is functionally equivalent to the expression:

anOperand1 = anOperand1 >> anOperand2;

The bitwise shift right operator converts its left operand to a 32 bit integer and moves it rightwards by the number of bits indicated by the right operand.

As the value is shifted rightwards, bits that roll out of the right end of the register are discarded. The left-hand end of the register containing the sign bit is duplicated to sign fill the value as it shifts. Shifting rightwards by 32 bits will fill the left operand with all zero or all one bits according to the value of the sign bit at the outset.

B – Bitwise shift right and assign (>>=) (Operator/assignment)

The right-hand operand is converted to a 5-bit value with a bitwise mask to limit the distance of the shift to 32 bits. This can cause unexpected results if the right-hand side is derived from an

expression that may yield a value larger than 32.

Although this is classified as an assignment operator it is really a compound of an assignment and a bitwise operator.

The associativity is right to left.

Refer to the Operator Precedence topic for details of execution order. The new value of anOperand1 is returned as a result of the expression.

0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1

Warnings:

❑ The operand to the left of the operator must be an LValue. That is, it should be able to take an assignment and store the value.

See also: Assignment operator, Associativity, Bit-field, Bitwise operator, Bitwise shift left (<<), Bitwise shift left then assign (<<=), Bitwise shift operator, Bitwise shift right (>>), Bitwise unsigned shift right (>>>), Bitwise unsigned shift right and assign (>>>=),LValue, Operator Precedence, Shift operator

Cross-references:

ECMA 262 edition 2 – section – 11.13 ECMA 262 edition 3 – section – 11.13

Bitwise unsigned shift right (>>>)

(Operator/bitwise)

Bitwise shift right one operand according to another. Availability: ECMAScript edition – 2

JavaScript – 1.0 JScript – 1.0

Internet Explorer – 3.02 Netscape – 2.0

Netscape Enterprise Server – 2.0 Opera – 3.0

Property/method value type: Number primitive

JavaScript syntax: - anOperand1 >>> anOperand2 anOperand1 A value to be shifted

Argument list:

anOperand2 A distance to shift the left operand

This is sometimes called shift right with zero extension.

The bitwise unsigned shift right operator converts its left operand to a 32 bit integer and moves it rightwards by the number of bits indicated by the right operand. The sign bit is not propagated. As the value is shifted rightwards, bits that roll out of the right end of the register are discarded. The left-hand end of the register containing the sign bit is zero-filled as the contents are shifted. Shifting rightwards by 32 bits will fill the register with all zero bits.

Because the value is converted to an integer, any fractional part is discarded as the shift begins. The right-hand operand is converted to a 5-bit value with a bitwise mask to limit the distance of the shift to 32 bits. This can cause unexpected results if the right-hand side is derived from an

expression that may yield a value larger than 32. The associativity is left to right.

B – Bitwise unsigned shift right (>>>) (Operator/bitwise)

0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0

Example code:

<HTML> <HEAD></HEAD> <BODY> <SCRIPT> myValue1 = -0x00FF00; myValue2 = myValue1 >>> 4; document.write("Val 1 : " + binary32(myValue1) + "<BR>"); document.write("Result : " + binary32(myValue2) + "<BR>"); // Binary convertor (ignore sign bit on MSIE)

function binary32(aValue) {

myArray = new Array(32);

for(myEnum=0; myEnum<32; myEnum++) {

if(aValue & Math.pow(2, myEnum)) { myArray[31-myEnum] = "1"; } else { myArray[31-myEnum] = "0"; } } return myArray.join(""); } </SCRIPT> </BODY> </HTML>

See also: Associativity, Bit-field,Bitwise shift left (<<), Bitwise shift left then assign (<<=), Bitwise shift operator, Bitwise shift right (>>), Bitwise shift right and assign (>>=), Bitwise unsigned shift right and assign (>>>=), Operator Precedence, Shift operator

Cross-references:

ECMA 262 edition 2 – section – 11.7.3 ECMA 262 edition 3 – section – 11.7.3

Bitwise unsigned shift right and assign (>>>=)

(Operator/assignment)

Destructively bitwise rightwards shift the first of two operands. Availability: ECMAScript edition – 2

JavaScript – 1.0 JScript – 1.0

Internet Explorer – 3.02 Netscape – 2.0

Netscape Enterprise Server – 2.0 Opera – 3.0

Property/method value type: Number primitive

JavaScript syntax: - anOperand1 >>>= anOperand2 anOperand1 A value to be shifted and assigned to Argument list:

anOperand2 A distance to shift the left operand

Bitwise unsigned shift rightwards the left operand by the number of bits in the right operand and assign the result to the left operand.

This is functionally equivalent to the expression:

anOperand1 = anOperand1 >>> anOperand2;

The bitwise unsigned shift right operator converts its left operand to a 32 bit integer and moves it rightwards by the number of bits indicated by the right operand. The sign bit is not propagated. As the value is shifted rightwards, bits that roll out of the right end of the register are discarded. The left-hand end of the register containing the sign bit is zero-filled as the contents are shifted. Shifting rightwards by 32 bits will fill the left operand with all zero bits.

Because the value is converted to an integer, any fractional part is discarded as the shift begins. The right-hand operand is converted to a 5-bit value with a bitwise mask to limit the distance of the shift to 32 bits. This can cause unexpected results if the right-hand side is derived from an

expression that may yield a value larger than 32.

Although this is classified as an assignment operator it is really a compound of an assignment and a bitwise operator.

B – Bitwise unsigned shift right and assign (>>>=) (Operator/assignment)

The associativity is right to left.

Refer to the Operator Precedence topic for details of execution order. The new value of anOperand1 is returned as a result of the expression.

0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0

Warnings:

❑ The operand to the left of the operator must be an LValue. That is, it should be able to take an assignment and store the value.

See also: Assignment operator, Associativity, Bit-field, Bitwise operator, Bitwise shift left (<<), Bitwise shift left then assign (<<=), Bitwise shift operator, Bitwise shift right (>>), Bitwise shift right and assign (>>=), Bitwise unsigned shift right (>>>), LValue, Operator Precedence, Shift operator

Cross-references:

ECMA 262 edition 2 – section – 11.13 ECMA 262 edition 3 – section – 11.13

Related documents