- Notifications
You must be signed in to change notification settings - Fork 46.7k
/
Copy pathexcess_3_code.py
27 lines (23 loc) · 628 Bytes
/
excess_3_code.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
defexcess_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=""
fordigitinstr(max(0, number)):
num+=str(bin(int(digit) +3))[2:].zfill(4)
return"0b"+num
if__name__=="__main__":
importdoctest
doctest.testmod()