공부중
[논리회로] 1의 보수, 2의 보수 변환 파이썬 코드 본문
728x90
1' COMPLEMENT
2' Complement
def complement(r, number):
# r-1의 보수 계산
r_minus_1_complement = ''.join(str((r-1) - int(digit)) for digit in number)
# r의 보수 계산 (r-1의 보수에 1을 더함)
r_complement = ''
carry = 1
for digit in reversed(r_minus_1_complement):
new_digit = int(digit) + carry
if new_digit == r:
carry = 1
r_complement = '0' + r_complement
else:
carry = 0
r_complement = str(new_digit) + r_complement
if carry == 1:
r_complement = '1' + r_complement
return r_minus_1_complement, r_complement
while(1):
# 사용자 입력
r = int(input("진법을 입력하세요 (예: 2, 10): "))
number = input(f"{r}진수의 숫자를 입력하세요: ")
# 보수 계산
r_minus_1_complement, r_complement = complement(r, number)
# 결과 출력
print(f"{r-1}의 보수: {r_minus_1_complement}")
print(f"{r}의 보수: {r_complement}")
728x90
'전자전기 > 논리회로' 카테고리의 다른 글
[논리회로] 진법 변환 ( 방법 및 python code) (0) | 2024.03.30 |
---|