Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Bitwise Rotation

Bitwise rotation to the left.

Usage

var rotl32 = require( '@stdlib/number/uint32/base/rotl' );

rotl32( x, shift )

Performs a bitwise rotation to the left.

var toBinaryStringUint32 = require( '@stdlib/number/uint32/base/to-binary-string' );

var x = 2147483649;
var bstr = toBinaryStringUint32( x );
// returns '10000000000000000000000000000001'

var y = rotl32( x, 10 );
// returns 1536

bstr = toBinaryStringUint32( y );
// returns '00000000000000000000011000000000'

Notes

  • If provided a shift equal to 0, the function returns the input value.

    var y = rotl32( 3, 0 );
    // returns 3
  • If provided a shift greater than 31, the function performs a bitwise rotation based on the 5 least significant bits of shift (i.e., shift % 32).

    var shift = 34; // 00000000000000000000000000100010
    
    var y = rotl( 1, shift ); // 00000000000000000000000000000100
    // returns 4

Examples

var toBinaryStringUint32 = require( '@stdlib/number/uint32/base/to-binary-string' );
var MAX_INT = require( '@stdlib/constants/uint32/max' );
var rotl32 = require( '@stdlib/number/uint32/base/rotl' );

var HALF;
var x;
var y;
var i;

for ( i = 0; i < 100; i++ ) {
    x = i;
    y = rotl32( x, 10 );
    console.log( '%d => %s => %s => %d', x, toBinaryStringUint32( x ), toBinaryStringUint32( y ), y );
}

HALF = (MAX_INT+1) / 2;
for ( i = 0; i < 100; i++ ) {
    x = HALF + i;
    y = rotl32( x, 10 );
    console.log( '%d => %s => %s => %d', x, toBinaryStringUint32( x ), toBinaryStringUint32( y ), y );
}

See Also