goodthings4me.tistory.com
■ 파이썬에서 10진수를 다른 진수의 문자열로 변환할 경우, 파이썬의 내장 함수 bin(), oct(), hex()를 사용하며, 역으로, 다른 진수의 문자열을 10진수 숫자형으로 변환할 때는 int()를 사용한다.
print(bin(10)) # 0b1010
print(oct(10)) # 0o12
print(hex(10)) # 0xa
print(int('0b1010', 2)) # 10
print(int('0o12', 8)) # 10
print(int('0xa', 16)) # 10
■ format() 내장 함수를 이용하는 방법(접두어 포함 여부를 선택할 수 있음)
# 진수(2/8/10/16) 관련 함수 사용
for i in range(16):
print('(10진수:{0:2d}) (2진수:{1:>6s}) (8진수:{2:>4s}) (16진수:{3:>4s})'\
.format(i, bin(i), oct(i), hex(i)))
[실행 결과]
(10진수: 0) (2진수: 0b0) (8진수: 0o0) (16진수: 0x0)
(10진수: 1) (2진수: 0b1) (8진수: 0o1) (16진수: 0x1)
(10진수: 2) (2진수: 0b10) (8진수: 0o2) (16진수: 0x2)
(10진수: 3) (2진수: 0b11) (8진수: 0o3) (16진수: 0x3)
(10진수: 4) (2진수: 0b100) (8진수: 0o4) (16진수: 0x4)
(10진수: 5) (2진수: 0b101) (8진수: 0o5) (16진수: 0x5)
(10진수: 6) (2진수: 0b110) (8진수: 0o6) (16진수: 0x6)
(10진수: 7) (2진수: 0b111) (8진수: 0o7) (16진수: 0x7)
(10진수: 8) (2진수:0b1000) (8진수:0o10) (16진수: 0x8)
(10진수: 9) (2진수:0b1001) (8진수:0o11) (16진수: 0x9)
(10진수:10) (2진수:0b1010) (8진수:0o12) (16진수: 0xa)
(10진수:11) (2진수:0b1011) (8진수:0o13) (16진수: 0xb)
(10진수:12) (2진수:0b1100) (8진수:0o14) (16진수: 0xc)
(10진수:13) (2진수:0b1101) (8진수:0o15) (16진수: 0xd)
(10진수:14) (2진수:0b1110) (8진수:0o16) (16진수: 0xe)
(10진수:15) (2진수:0b1111) (8진수:0o17) (16진수: 0xf)
# 0b, 0o, 0x 포함
for i in range(16):
print('{0:>#6b}, {1:>#4o}, {2:>#2d}, {3:>#4x}'.format(i, i ,i, i))
[실행 결과]
0b0, 0o0, 0, 0x0
0b1, 0o1, 1, 0x1
0b10, 0o2, 2, 0x2
0b11, 0o3, 3, 0x3
0b100, 0o4, 4, 0x4
0b101, 0o5, 5, 0x5
0b110, 0o6, 6, 0x6
0b111, 0o7, 7, 0x7
0b1000, 0o10, 8, 0x8
0b1001, 0o11, 9, 0x9
0b1010, 0o12, 10, 0xa
0b1011, 0o13, 11, 0xb
0b1100, 0o14, 12, 0xc
0b1101, 0o15, 13, 0xd
0b1110, 0o16, 14, 0xe
0b1111, 0o17, 15, 0xf
# '#' 제외 시, 0b/ 0o/ 0x 제외됨
for i in range(16):
print('{0:>6b}, {1:>4o}, {2:>2d}, {3:>4x}'.format(i, i ,i, i))
[실행 결과]
0, 0, 0, 0
1, 1, 1, 1
10, 2, 2, 2
11, 3, 3, 3
100, 4, 4, 4
101, 5, 5, 5
110, 6, 6, 6
111, 7, 7, 7
1000, 10, 8, 8
1001, 11, 9, 9
1010, 12, 10, a
1011, 13, 11, b
1100, 14, 12, c
1101, 15, 13, d
1110, 16, 14, e
1111, 17, 15, f
■ 2/8/10/16진수 중 하나의 값을 입력하면, 입력값의 2/8/10/16진수 전체를 알려주는 함수 작성
def notation():
while True:
sel_n = input('구하고자 하는 진수 숫자(2/8/10/16) 입력은? (종료는 0)>> ')
if sel_n == '0':
print('프로그램 종료!!')
break
elif sel_n == '2' or sel_n == '8' or sel_n == '10' or sel_n == '16' :
val = input('선택한 진수의 값 입력>> ')
sl = val[:2]
try:
if sl == '0b' or sl == '0o' or sl == '0x':
if sl == '0b':
int_num = int(val, 2)
elif sl == '0o':
int_num = int(val, 8)
elif sl == '0x':
int_num = int(val, 16)
else:
if sel_n == '2':
int_num = int('0b' + val, 2)
elif sel_n == '8':
int_num = int('0o' + val, 8)
elif sel_n == '10':
int_num = int(val)
elif sel_n == '16':
int_num = int('0x' + val, 16)
except Exception as e:
print(e)
print('잘못 된 값을 입력하셨습니다.')
continue
print(' 2진수 : {0} [{1:b}]'.format(bin(int_num), int_num)) # 0b111 #b
print(' 8진수 : {0} [{1:o}]'.format(oct(int_num), int_num)) # 0o7 #o
print('10진수 : {0}'.format(int_num))
print('16진수 : {0} [{1:x}]'.format(hex(int_num), int_num)) # 0x7 #x
else:
print('선택 오류!! (다시 입력하세요.)')
notation()
[실행 결과]
구하고자 하는 진수 숫자(2/8/10/16) 입력은? (종료는 0)>> 16
선택한 진수의 값 입력>> FFA1
2진수 : 0b1111111110100001 [1111111110100001]
8진수 : 0o177641 [177641]
10진수 : 65441
16진수 : 0xffa1 [ffa1]
구하고자 하는 진수 숫자(2/8/10/16) 입력은? (종료는 0)>> 10
선택한 진수의 값 입력>> 128
2진수 : 0b10000000 [10000000]
8진수 : 0o200 [200]
10진수 : 128
16진수 : 0x80 [80]
구하고자 하는 진수 숫자(2/8/10/16) 입력은? (종료는 0)>> 8
선택한 진수의 값 입력>> 123
2진수 : 0b1010011 [1010011]
8진수 : 0o123 [123]
10진수 : 83
16진수 : 0x53 [53]
구하고자 하는 진수 숫자(2/8/10/16) 입력은? (종료는 0)>> 2
선택한 진수의 값 입력>> 11011101
2진수 : 0b11011101 [11011101]
8진수 : 0o335 [335]
10진수 : 221
16진수 : 0xdd [dd]
구하고자 하는 진수 숫자(2/8/10/16) 입력은? (종료는 0)>> 0
프로그램 종료!!

블로그 인기글
Windows 10 탐색기 느려지는 증상과 해결하는 방법
잘 작동하던 Windows 10 탐색기가 갑자기 느려지는 증상이 발생했을 때 어떻게 조치를 하는지 구글에서 찾아보니 많은 해결책들이 있었으나 어떤 것이 정확한 해결책인지는 알 수가 없었다. 그래서 해결방법이라고 제시한 것들을 정리해 보았다. 윈도우 탐색기가 느려지는 증상 해결 방법 어느 순간부터 응용프로그램(VS Code 등)에서 폴더 열기나 파일 불러오기를 했을 때 검색 팝업창이 안 뜨거나 열리는 시간이 엄청 느려지는 증상과, 더불어서 탐색기도 실행이 많이 느려지는 증상이 있었다. 기존에 사용하던 VS Code에 openpyxl 설치 후 실행이 느려지는 증상이 발생하더니 윈도우10 탐색기도 느려져서 사용할 수가 없었다. 노트북에 OS(Windows10)를 설치한지 1년이 다 되어가긴 했지만, 1개월 전..
goodthings4me.tistory.com
[국세청] 현금영수증가맹점으로 가입바랍니다. 메시지 해결방법(개인사업자)
▶ 현금영수증 가맹점 가입 메시지를 받고... 온라인 쇼핑몰 사업을 시작하려고 사업자등록증을 발급받고 난 후 얼마 안 있어서 국세청으로부터 어느 시점까지 '현금영수증 가맹점'으로 가입하라는 문자메시지가 받았었다. 그 메시지 기한이 오늘 도래했는데, 인터넷에서 찾아보니 홈택스에서 현금영수증 발급 사업자 신청을 할 수가 있었다. [관련내용] 홈>국세정책/제도>전자(세금)계산서/현금영수증/신용카드>현금영수증∙신용카드>가맹점가입 ▶ 홈택스 사이트에서 신청하는 절차는 다음과 같다. 우선, 홈택스에 로그인을 해야 합니다. 세상이 좋아져서 공인인증서 없이도 손쉽게 간편인증 로그인이 가능하다. 여러 인증방법 중 카카오톡 인증이 가장 편리한 거 같다. 간편인증 로그인 후 상단 '조회/발급' 탭 클릭 후 '현금영수증>현금..
goodthings4me.tistory.com
폐업 신고 절차와 부가가치세 신고하는 방법
폐업 신고 시 세무서 안 가고 온라인으로 신고하는 방법인 '국세청 홈택스를 이용하여 폐업 신고하는 절차와 폐업 후 해야 하는 부가가치세 신고, 인건비 저리, 종합소득세 신고 등에 대해 포스팅합니다. 폐업 신고 시 홈택스 이용하는 방법과 부가가치세 등 신고 절차 여러가지 사유로 폐업을 해야 할 때, 예전에는 세무서를 방문해야 했지만 국세청 홈택스가 생긴 이후에는 사업자 등록이나 폐업 등을 인터넷으로 할 수가 있게 되었습니다. 특히, 코로나 시국인 요즘은 더더욱 온라인 신청 업무가 더 활성화되었죠. 폐업을 한다는 것 자체가 우울한 일인데, 발품을 파는 것보다는 커피 한잔 하면서 인터넷으로 간단하게 처리하는 게 좋을 듯하여 그 절차를 올려봅니다. 폐업은 폐업 신고와 함께 폐업 후 절차까지 모두 마쳐야 불이익이..
goodthings4me.tistory.com
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[python] 파이썬 함수의 위치 인자, 키워드 인자 언패킹 (0) | 2020.09.19 |
---|---|
[python] 파이썬의 변수, 객체, 그리고 참조 주소 (0) | 2020.09.19 |
[python] 파이썬 스태틱(static) 메서드와 클래스(class) 메서드 (0) | 2020.09.17 |
[python] 파이썬 데코레이터 (Decorator) (0) | 2020.09.16 |
[python] 파이썬 중첩함수(Nested Function)와 클로저(Closure) (0) | 2020.09.15 |
댓글