Arithmetic#
Bit Shifts#
- shift_left(string $value, int $shift) string#
$value << $shift
- shift_right(string $value, int $shift) string#
$value >> $shift
Addition and Subtraction#
- add(string $a, string $b) string#
$a + $b
- add_int(string $a, int $b) string#
$a + $boptimized for small integers
- sub(string $a, string $b) string#
$a - $b
- sub_int(string $a, int $b) string#
$a - $boptimized for small subtrahends
- sub_int_rev(int $a, string $b) string#
$a - $boptimized for small minuends
Multiplication#
- mul(string $a, string $b) string#
$a * $b
- mul_int(string $a, int $b) string#
$a * $boptimized for small integers
Division#
- div_mod(string $a, string $b) [string, string]#
$a /% $b- Returns:
[quotient, remainder]
- div_mod_int(string $a, int $b) [string, int]#
$a /% $boptimized for small divisors- Returns:
[quotient, remainder]
- div(string $a, string $b) string#
$a / $b
- div_int(string $a, int $b) string#
$a / $boptimized for small divisors
- mod(string $a, string $b) string#
$a % $b
- mod_int(string $a, int $b) int#
$a % $boptimized for small divisors- Returns:
Result is integer because if $b can be represented as native integer, remainder can be too
Comparison#
- compare(string $a, string $b) int#
$a <=> $b- Returns:
Same values as the spaceship operator
Bit manipulation#
- is_bit_set(string $a, int $bit) bool#
- Parameters:
$bit (
int) – Bit number, 0 is the least significant bit
- Returns:
If
$bit’th bit is set
- set_bit(string $a, int $bit) string#
Set
$bit’th bit to 1- Parameters:
$bit (
int) – Bit number, 0 is the least significant bit
- unset_bit(string $a, int $bit) string#
Set
$bit’th bit to 0- Parameters:
$bit (
int) – Bit number, 0 is the least significant bit