Печатать битное представление чисел в python - программирование
Подтвердить что ты не робот

Печатать битное представление чисел в python

Я хочу напечатать бит-представление чисел на консоли, чтобы я мог видеть все операции, выполняемые самими битами.

Как я могу сделать это в python?

4b9b3361

Ответ 1

Эта вещь?

>>> ord('a')
97
>>> hex(ord('a'))
'0x61'
>>> bin(ord('a'))
'0b1100001'

Ответ 3

Из Python 2.6 - с метод string.format:

"{0:b}".format(0x1234)

в частности, вы можете использовать прописку, так что несколько отпечатков разных чисел все равно выстраиваются в линию:

"{0:16b}".format(0x1234)

и оставить пробел с ведущими 0, а не пробелами:

"{0:016b}".format(0x1234)

Из Python 3.6 - с f-strings:

Те же три примера с f-строками будут:

f"{0x1234:b}"
f"{0x1234:16b}"
f"{0x1234:016b}"

Ответ 5

Немного не по теме, но может быть полезно. Для лучшей удобной печати я бы использовал пользовательскую функцию печати, определял символы представления и групповой интервал для лучшей читаемости. Вот примерная функция, она принимает список/массив и ширину группы:

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