Skip to content

BitMath ​

Git Source

Helper contract used for bit calculations

Functions ​

closestBitRight ​

Returns the index of the closest bit on the right of x that is non null

solidity
function closestBitRight(uint256 x, uint8 bit) internal pure returns (uint256 id);

Parameters

NameTypeDescription
xuint256The value as a uint256
bituint8The index of the bit to start searching at

Returns

NameTypeDescription
iduint256The index of the closest non null bit on the right of x. If there is no closest bit, it returns max(uint256)

closestBitLeft ​

Returns the index of the closest bit on the left of x that is non null

solidity
function closestBitLeft(uint256 x, uint8 bit) internal pure returns (uint256 id);

Parameters

NameTypeDescription
xuint256The value as a uint256
bituint8The index of the bit to start searching at

Returns

NameTypeDescription
iduint256The index of the closest non null bit on the left of x. If there is no closest bit, it returns max(uint256)

mostSignificantBit ​

Returns the index of the most significant bit of x
This function returns 0 if x is 0

solidity
function mostSignificantBit(uint256 x) internal pure returns (uint8 msb);

Parameters

NameTypeDescription
xuint256The value as a uint256

Returns

NameTypeDescription
msbuint8The index of the most significant bit of x

leastSignificantBit ​

Returns the index of the least significant bit of x
This function returns 255 if x is 0

solidity
function leastSignificantBit(uint256 x) internal pure returns (uint8 lsb);

Parameters

NameTypeDescription
xuint256The value as a uint256

Returns

NameTypeDescription
lsbuint8The index of the least significant bit of x