Câu trả lời:
>>> '{0:08b}'.format(6)
'00000110'
Chỉ để giải thích các phần của chuỗi định dạng:
{}
đặt một biến thành một chuỗi0
lấy biến ở vị trí đối số 0:
thêm tùy chọn định dạng cho biến này (nếu không nó sẽ biểu thị thập phân 6
)08
định dạng số thành tám chữ số không đệm ở bên tráib
chuyển đổi số thành biểu diễn nhị phân của nóNếu bạn đang sử dụng phiên bản Python 3.6 trở lên, bạn cũng có thể sử dụng chuỗi f:
>>> f'{6:08b}'
'00000110'
0
có nghĩa là 0th
đối số để format
. Sau dấu hai chấm là định dạng, thứ hai 0
có nghĩa là không điền vào 8 khoảng trắng và b
cho nhị phân
format()
chức năng : format(6, '08b')
; hàm lấy một giá trị (những gì {..}
vị trí áp dụng cho) và một đặc tả định dạng (bất cứ điều gì bạn sẽ đặt sau :
chuỗi định dạng).
Chỉ là một ý tưởng khác:
>>> bin(6)[2:].zfill(8)
'00000110'
Con đường ngắn hơn thông qua nội suy chuỗi ( Python 3.6+ ):
>>> f'{6:08b}'
'00000110'
bin(-6)[2:].zfill(8)
đọc là'0000b110'
Một phương pháp vặn vẹo một chút ...
>>> bin8 = lambda x : ''.join(reversed( [str((x >> i) & 1) for i in range(8)] ) )
>>> bin8(6)
'00000110'
>>> bin8(-3)
'11111101'
x
sang phải và AND với nó 1
, trích xuất hiệu quả một bit (0 hoặc 1) tại một thời điểm.
Câu trả lời của eumiro là tốt hơn, tuy nhiên tôi chỉ đăng bài này cho đa dạng:
>>> "%08d" % int(bin(6)[2:])
00000110
'%08x' % int(bin(6)[2:], 16)
numpy.binary_repr(num, width=None)
có một đối số chiều rộng ma thuậtCác ví dụ liên quan từ tài liệu được liên kết ở trên:
>>> np.binary_repr(3, width=4) '0011'
Phần bù của hai được trả về khi số đầu vào là âm và chiều rộng được chỉ định:
>>> np.binary_repr(-3, width=5) '11101'
Đi học cũ luôn hoạt động.
def intoBinary(number):
binarynumber=""
if (number!=0):
while (number>=1):
if (number %2==0):
binarynumber=binarynumber+"0"
number=number/2
else:
binarynumber=binarynumber+"1"
number=(number-1)/2
else:
binarynumber="0"
return "".join(reversed(binarynumber))
number=number/2
cho phao, vì vậy number=number//2
các đường may tốt hơn, tôi cũng sẽ thay thế number=number//2
bằng number//=2
và b=b+"0"
vớib+="0"
Cách tốt nhất là chỉ định định dạng.
format(a, 'b')
trả về giá trị nhị phân của một định dạng chuỗi.
Để chuyển đổi một chuỗi nhị phân trở lại số nguyên, sử dụng hàm int ().
int('110', 2)
trả về giá trị nguyên của chuỗi nhị phân.
def int_to_bin(num, fill):
bin_result = ''
def int_to_binary(number):
nonlocal bin_result
if number > 1:
int_to_binary(number // 2)
bin_result = bin_result + str(number % 2)
int_to_binary(num)
return bin_result.zfill(fill)