mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
Excess 3 code (#11001)
* added excess-3 code * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * updated with fixes * updated with fixes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update excess_3_code.py --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Christian Clauss <cclauss@me.com>
This commit is contained in:
parent
a0e80a74c8
commit
1e1ee00782
27
bit_manipulation/excess_3_code.py
Normal file
27
bit_manipulation/excess_3_code.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
def excess_3_code(number: int) -> str:
|
||||
"""
|
||||
Find excess-3 code of integer base 10.
|
||||
Add 3 to all digits in a decimal number then convert to a binary-coded decimal.
|
||||
https://en.wikipedia.org/wiki/Excess-3
|
||||
|
||||
>>> excess_3_code(0)
|
||||
'0b0011'
|
||||
>>> excess_3_code(3)
|
||||
'0b0110'
|
||||
>>> excess_3_code(2)
|
||||
'0b0101'
|
||||
>>> excess_3_code(20)
|
||||
'0b01010011'
|
||||
>>> excess_3_code(120)
|
||||
'0b010001010011'
|
||||
"""
|
||||
num = ""
|
||||
for digit in str(max(0, number)):
|
||||
num += str(bin(int(digit) + 3))[2:].zfill(4)
|
||||
return "0b" + num
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
|
||||
doctest.testmod()
|
Loading…
Reference in New Issue
Block a user