반응형
파이썬에서 숫자의 비트 표현 인쇄
비트 자체에서 수행되는 모든 작업을 볼 수 있도록 숫자의 비트 표현을 콘솔에 인쇄하고 싶습니다.
파이썬에서 어떻게 할 수 있습니까?
이런거?
>>> ord('a')
97
>>> hex(ord('a'))
'0x61'
>>> bin(ord('a'))
'0b1100001'
Python 2.6 이상 :
print bin(123)
결과 :
0b1111011
파이썬 2.x에서
>>> binary = lambda n: n>0 and [n&1]+binary(n>>1) or []
>>> binary(123)
[1, 1, 0, 1, 1, 1, 1]
참고 : http://mail.python.org/pipermail/python-list/2003-December/240914.html의 "Mark Dufour"에서 가져온 예
Python 2.6 에서 -string.format 메서드 사용 :
"{0:b}".format(0x1234)
특히 패딩을 사용하여 서로 다른 숫자의 여러 인쇄물이 여전히 정렬되도록 할 수 있습니다.
"{0:16b}".format(0x1234)
공백이 아닌 선행 0으로 패딩을 남깁니다.
"{0:016b}".format(0x1234)
파이썬 3.6에서 -와 F-문자열 :
f- 문자열을 사용하는 동일한 세 가지 예는 다음과 같습니다.
f"{0x1234:b}"
f"{0x1234:16b}"
f"{0x1234:016b}"
주제에서 약간 벗어 났지만 도움이 될 수 있습니다. 더 나은 사용자 친화적 인 인쇄를 위해 사용자 정의 인쇄 기능을 사용하고 더 나은 가독성을 위해 표현 문자 및 그룹 간격을 정의합니다. 다음은 목록 / 배열 및 그룹 너비를 취하는 함수의 예입니다.
def bprint(A, grp):
for x in A:
brp = "{:08b}".format(x)
L=[]
for i,b in enumerate(brp):
if b=="1":
L.append("k")
else:
L.append("-")
if (i+1)%grp ==0 :
L.append(" ")
print "".join(L)
#run
A = [0,1,2,127,128,255]
bprint (A,4)
산출:
---- ----
---- ---k
---- --k-
-kkk kkkk
k--- ----
kkkk kkkk
참조 URL : https://stackoverflow.com/questions/1054116/printing-bit-representation-of-numbers-in-python
반응형
'IT Share you' 카테고리의 다른 글
vuejs 라우터의 선택적 매개 변수 (0) | 2021.01.06 |
---|---|
Django에서 동적으로 생성 된 ZIP 아카이브 제공 (0) | 2021.01.06 |
jConsole을 사용하여 원격 Tomcat JMX 인스턴스 연결 (0) | 2021.01.06 |
CSS를 사용하여 HTML 텍스트 영역에서 고정 폭 글꼴을 사용하도록 강제 (0) | 2021.01.06 |
Git-svn : 새 브랜치 / 태그 생성 및 푸시? (0) | 2021.01.06 |