2진수
format()
format()을 사용하여 이진수로 변환이 가능합니다. 이때, 변환 결과로 0bxxxx... 형태로 나오게 되므로 0b를 없에는 처리를 해주어야 합니다.
# 방법 1
binary_str1 = "{0:b}".format(arr1[i] | arr2[i])
# 방법 2
binary_str2 = format(arr1[i] | arr2[i], 'b')
bin()
bin()을 사용하여 이진수로의 변환이 가능합니다. bin()의 변환 결과도 0bxxxx... 형태로 나오기 때문에 0b를 없에줘야 합니다.
binary_str = str(bin(arr1[i] | arr2[i]))[2:]
zfill(), rjust()
format()과 bin()의 결과로 n개의 비트를 가진 이진수를 만들때 비트의 앞이 0으로 되어있으면 0을 지우고 1인 부분부터 문자열로 변환되기 때문에(e.g. 4비트 3(10진수) -> 0011(2진수) 가 아닌 11(2진수) 가 됩니다.) 만약 n개의 비트를 만들기 위해 앞부분의 0을 채워야한다면 zfill()과 rjust()을 사용하는 방법이 있습니다.
# 방법 1
binary_str1 = "{0:b}".format(arr1[i] | arr2[i]).zfill(n)
# 방법 2
binary_str2 = format(arr1[i] | arr2[i], 'b').rjust(n, '0')
# 방법 3
binary_str3 = str(bin(arr1[i] | arr2[i]))[2:].rjust(n, '0')
# 방법 4
binary_str4 = str(bin(arr1[i] | arr2[i]))[2:].zfill(n)
N진수
def convert(num, base):
temp = "0123456789ABCDEF"
q, r = divmod(num, base)
if q == 0:
return temp[r]
else:
# q를 base로 변환
# 즉, n진수의 다음 자리를 구함
return convert(q, base) + temp[r]
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
[Python] 문자열을 일정 길이로 자르기 (0) | 2021.03.14 |
---|---|
[Python] count() (0) | 2021.03.06 |
[Python] dict 정렬 (0) | 2021.03.06 |
[Python] itertools cycle() (0) | 2021.02.12 |
[Python] collections.Counter (0) | 2021.02.07 |