Bitwise Left Shift Assignment (<<=) Expression

Summary

Shift bits to the left by the specified amount and assign the value back to a variable.

Syntax

variable <<= amount

Parameters

variable
The variable, property, or array element to update.
amount
The amount to shift the bits. The amount can be any valid expression.

Description

For numeric variables, the <<= operator computes the value of the expression on the right, and then shifts the bits of the variable, property, or array element value on the left by the specified amount. The expression on the right is the amount to shift the bits and is evaluated first. The shifted amount is assigned back to the variable on the left.

The <<= operator is equivalent to the << operator with the left-hand side being the variable, property, or array element to modify and the right-hand side being the amount to shift the bits. Therefore, the following expressions are equivalent:

1
2
x <<= 5;    // Equivalent to x = x << 5
x = x << 5; // Equivalent to x <<= 5

How Bitwise Left Shift Operations Work

In a bitwise left shift operation, the value to shift is converted to its binary representation. For example, the decimal (base 10) number 0 (zero) may be converted to the binary form 0000 and the number 1 (one) may be converted to 0001. The bitwise left shift operation will move each bit to the left by the specified amount. For example, if we shift the base 10 number 1 (one) to the left by 2 (two), the operation looks like:

1
2
3
0001 (1)
--------
0100 (4) // 1 << 2

In this case, the base 10 number 4 (four) is produced by shifting the base 10 number 1 (one) to the left by two.

Zero bits are added to the right, and excess bits on the left that were shifted off are discarded.

Differences from JavaScript

Bitwise left shift operations are not limited to 32-bit integers in JS++. Unimplemented In JavaScript, the bitwise left shift operation is limited to signed 32-bit integers.

Examples

Basic Usage
1
2
3
4
5
6
import System;
 
int x = 8;
Console.log(x); // 8
x <<= 1;
Console.log(x); // 16
Multiplication by 2 using Bitwise Left Shifts
1
2
3
4
5
6
7
8
import System;
 
int x = 5;
Console.log(x); // 5
x <<= 1;
Console.log(x); // 10
x <<= 1;
Console.log(x); // 20

See Also

Share

HTML | BBCode | Direct Link