bit_manipulation.binary_shifts

Functions

arithmetic_right_shift(→ str)

Take in 2 integers.

logical_left_shift(→ str)

Take in 2 positive integers.

logical_right_shift(→ str)

Take in positive 2 integers.

Module Contents

bit_manipulation.binary_shifts.arithmetic_right_shift(number: int, shift_amount: int) str

Take in 2 integers. ‘number’ is the integer to be arithmetically right shifted ‘shift_amount’ times. i.e. (number >> shift_amount) Return the shifted binary representation.

>>> arithmetic_right_shift(0, 1)
'0b00'
>>> arithmetic_right_shift(1, 1)
'0b00'
>>> arithmetic_right_shift(-1, 1)
'0b11'
>>> arithmetic_right_shift(17, 2)
'0b000100'
>>> arithmetic_right_shift(-17, 2)
'0b111011'
>>> arithmetic_right_shift(-1983, 4)
'0b111110000100'
bit_manipulation.binary_shifts.logical_left_shift(number: int, shift_amount: int) str

Take in 2 positive integers. ‘number’ is the integer to be logically left shifted ‘shift_amount’ times. i.e. (number << shift_amount) Return the shifted binary representation.

>>> logical_left_shift(0, 1)
'0b00'
>>> logical_left_shift(1, 1)
'0b10'
>>> logical_left_shift(1, 5)
'0b100000'
>>> logical_left_shift(17, 2)
'0b1000100'
>>> logical_left_shift(1983, 4)
'0b111101111110000'
>>> logical_left_shift(1, -1)
Traceback (most recent call last):
    ...
ValueError: both inputs must be positive integers
bit_manipulation.binary_shifts.logical_right_shift(number: int, shift_amount: int) str

Take in positive 2 integers. ‘number’ is the integer to be logically right shifted ‘shift_amount’ times. i.e. (number >>> shift_amount) Return the shifted binary representation.

>>> logical_right_shift(0, 1)
'0b0'
>>> logical_right_shift(1, 1)
'0b0'
>>> logical_right_shift(1, 5)
'0b0'
>>> logical_right_shift(17, 2)
'0b100'
>>> logical_right_shift(1983, 4)
'0b1111011'
>>> logical_right_shift(1, -1)
Traceback (most recent call last):
    ...
ValueError: both inputs must be positive integers