a=int(input("시프트 할 숫자는? "))
b=int(input("출력 할 횟수는? "))
result = 0
i = 0
for i in range(1, b+1) :
result = a << i
print("%d << %d = %d" % (a, i, result))
for i in range(1, b+1) :
result = a >> i
print("%d << %d = %d" % (a, i, result))
## 변수 선언 부분 ##
a, b, c, d, c500, c100, c50, c10 = 0, 0, 0, 0, 0, 0, 0, 0
## 메인 코드 부분 ##
a = int(input("\n500원짜리 개수 ==> "))
b = int(input("100원짜리 개수 ==> "))
c = int(input("50원짜리 개수 ==> "))
d = int(input("10원짜리 개수 ==> "))
c500 = a * 500
c100 = b * 100
c50 = c * 50
c10 = d * 10
print("## 동전의 합계 ==> ", c500 + c100 + c50 + c10, "원")
10. [응용예제 02]를 활용해서 비트 논리곱을 구현합니다. 2진수 2개를 입력받아서 각 숫자에 대한 2진수와 비트 논리합(|)의 결과 2진수를 출력하는 프로그램을 작성하세요. 예로 1111011과 111001000을 입력하면 1111011 | 111001000의 결과 11111101이 차례로 출력된 결과는 다음과 같습니다.
3-2 Code03-04.py는 16, 10, 8, 2 이외의 숫자를 입력하면 오류가 발생한다. 코드를 수정해서 16, 10, 8, 2 외의 숫자를 입력하면 '16, 10, 8, 2 숫자 중 하나만 입력하세요.'라는 메시지를 출력하고 프로그램을 종료하도록 if 문을 추가해 보자.
sel = int(input("입력 진수 결정(16/10/8/2) : "))
if sel == 16 :
num = input("값 입력 : ")
num10 = int(num, 16)
if sel == 10 :
num = input("값 입력 : ")
num10 = int(num, 10)
if sel == 8 :
num = input("값 입력 : ")
num10 = int(num, 8)
if sel == 2 :
num = input("값 입력 : ")
num10 = int(num, 2)
if sel != 16 and 10 and 8 and 2 :
print("16, 10, 8, 2 숫자 중 하나만 입력하세요.")
exit()
print("16진수 ==> ", hex(num10))
print("10진수 ==> ", (num10))
print("8진수 ==> ", oct(num10))
print("2진수 ==> ", bin(num10))
연습문제
1. 다음 각 보기를 실행하여 다른 값이 출력하는 것을 하나 고르세요.
① print("100") ② print(100) ③print(50+50) ④print("50+50")
num = input("글자 입력 : ")
if '0' <= num <= '1' :
print("2진수 또는 8진수 또는 10진수 또는 16진수 입니다.")
elif '0' <= num <= '7' :
print("8진수 또는 10진수 또는 16진수 입니다.")
elif '0' <= num <= '9' :
print("10진수 또는 16진수 입니다.")
elif '0' <= num <= '9' or 'A' <= num <='F' or 'a' <= num <='f' :
print("16진수 입니다.")
else :
print("숫자가 아닙니다.")
*주의사항 : 제가 직접 푼 것이므로 틀린 부분이 있을 수 있습니다. 오타나 틀린 부분 지적 환영!