Add arithmetic shift, use logic shift in current right shift (#1670)

* Add arithmetic shift, use logic shift in current

* State that the MSBs will be cleared to zero in logic right shift
This commit is contained in:
altrisi authored and GitHub committed 2023-03-08 21:26:27 +01:00
1 parent c2ef75df6d
commit 06bdbdaed2
2 files changed
+6 -2

No files matched your search

+4 -1
View File
@@ -308,7 +308,10 @@ only take integer values, so if the input has a decimal part, it will be discard
tend to -1.
- `bitwise_shift_left(num, amount)` -> Shifts all the bits of the first number `amount` spots to the left. Note that shifting more
than 63 positions will result in a 0 (cos you shift out all the bits of the number)
- `bitwise_shift_right(num, amount)` -> Shifts all the bits of the first number `amount` spots to the right. Like with the above,
- `bitwise_shift_right(num, amount)` -> Shifts all the bits of the first number `amount` spots to the right logically. That is, the
`amount` most significant bits will always be set to 0. Like with the above, shifting more than 63 bits results in a 0.
- `bitwise_arithmetic_shift_right(num, amount)` -> Shifts all the bits of the first number `amount` spots to the right arithmetically.
That is, if the most significant (sign) bit is a 1, it'll propagate the one to the `amount` most significant bits. Like with the above,
shifting more than 63 bits results in a 0.
- `bitwise_roll_left(num, amount)` -> Rolls the bits of the first number `amount` bits to the left. This is basically where you
shift out the first `amount` bits and then add them on at the back, essentially 'rolling' the number. Note that unlike with