Hướng dẫn python convert int to base 2 - python chuyển đổi int thành cơ sở 2

Có bất kỳ mô -đun hoặc chức năng nào trong Python tôi có thể sử dụng để chuyển đổi số thập phân sang tương đương nhị phân của nó không? Tôi có thể chuyển đổi nhị phân thành thập phân bằng int ('[binary_value]', 2), vì vậy có cách nào để làm ngược lại mà không viết mã để tự làm không?

Hướng dẫn python convert int to base 2 - python chuyển đổi int thành cơ sở 2

Mule Vaibhav

4.8913 Huy hiệu vàng34 Huy hiệu bạc52 Huy hiệu Đồng3 gold badges34 silver badges52 bronze badges

Hỏi ngày 20 tháng 8 năm 2010 lúc 4:13Aug 20, 2010 at 4:13

2

Tất cả các số được lưu trữ trong nhị phân. Nếu bạn muốn biểu diễn văn bản của một số nhất định trong nhị phân, hãy sử dụng

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

>>> bin(10)
'0b1010'
>>> 0b1010
10

Đã trả lời ngày 20 tháng 8 năm 2010 lúc 4:17Aug 20, 2010 at 4:17

Aaronasterlingaaronasterlingaaronasterling

67.1K20 Huy hiệu vàng125 Huy hiệu bạc125 Huy hiệu Đồng20 gold badges125 silver badges125 bronze badges

2

Đã trả lời ngày 20 tháng 8 năm 2010 lúc 4:23Aug 20, 2010 at 4:23

Matt WilliamsonMatt WilliamsonMatt Williamson

38.3k10 Huy hiệu vàng62 Huy hiệu bạc72 Huy hiệu đồng10 gold badges62 silver badges72 bronze badges

2

Không có 0b ở phía trước:

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

Bắt đầu với Python 3.6 Bạn cũng có thể sử dụng chuỗi được định dạng theo nghĩa đen hoặc F-String, --- PEP:

f"{int_value:b}"

Hướng dẫn python convert int to base 2 - python chuyển đổi int thành cơ sở 2

Alex Waygood

5.3563 Huy hiệu vàng19 Huy hiệu bạc45 Huy hiệu đồng3 gold badges19 silver badges45 bronze badges

Đã trả lời ngày 11 tháng 11 năm 2013 lúc 17:20Nov 11, 2013 at 17:20

user136036user136036user136036

10,2K6 Huy hiệu vàng43 Huy hiệu bạc46 Huy hiệu đồng6 gold badges43 silver badges46 bronze badges

5

def dec_to_bin(x):
    return int(bin(x)[2:])

Nó là dễ dàng.

Đã trả lời ngày 9 tháng 8 năm 2012 lúc 19:08Aug 9, 2012 at 19:08

Schmidmtschmidmtschmidmt

6666 Huy hiệu bạc4 Huy hiệu đồng6 silver badges4 bronze badges

7

Bạn cũng có thể sử dụng một chức năng từ mô -đun Numpy

from numpy import binary_repr

cũng có thể xử lý các số không hàng đầu:

Definition:     binary_repr(num, width=None)
Docstring:
    Return the binary representation of the input number as a string.

    This is equivalent to using base_repr with base 2, but about 25x
    faster.

    For negative numbers, if width is not given, a - sign is added to the
    front. If width is given, the two's complement of the number is
    returned, with respect to that width.

Đã trả lời ngày 6 tháng 2 năm 2013 lúc 19:21Feb 6, 2013 at 19:21

Flonkflonkflonk

3.5673 Huy hiệu vàng23 Huy hiệu bạc35 Huy hiệu Đồng3 gold badges23 silver badges35 bronze badges

Tôi đồng ý với câu trả lời của @Aaronasterling. Tuy nhiên, nếu bạn muốn một chuỗi không nhị phân mà bạn có thể chuyển vào INT, thì bạn có thể sử dụng thuật toán chính tắc:

def decToBin(n):
    if n==0: return ''
    else:
        return decToBin(n/2) + str(n%2)

Đã trả lời ngày 20 tháng 8 năm 2010 lúc 4:25Aug 20, 2010 at 4:25

inspectorG4dgetinspectorG4dgetinspectorG4dget

107K25 Huy hiệu vàng140 Huy hiệu bạc236 Huy hiệu Đồng25 gold badges140 silver badges236 bronze badges

5

n=int(input('please enter the no. in decimal format: '))
x=n
k=[]
while (n>0):
    a=int(float(n%2))
    k.append(a)
    n=(n-a)/2
k.append(0)
string=""
for j in k[::-1]:
    string=string+str(j)
print('The binary no. for %d is %s'%(x, string))

Đã trả lời ngày 2 tháng 8 năm 2013 lúc 14:07Aug 2, 2013 at 14:07

Harryharryharry

711 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges

Để hoàn thành: Nếu bạn muốn chuyển đổi biểu diễn điểm cố định thành tương đương nhị phân, bạn có thể thực hiện các hoạt động sau:

  1. Nhận phần nguyên và phần phân số.

    from decimal import *
    a = Decimal(3.625)
    a_split = (int(a//1),a%1)
    
  2. Chuyển đổi phần phân số trong biểu diễn nhị phân của nó. Để đạt được điều này liên tiếp với 2.

    fr = a_split[1]
    str(int(fr*2)) + str(int(2*(fr*2)%1)) + ...
    

Bạn có thể đọc lời giải thích ở đây.

Đã trả lời ngày 13 tháng 11 năm 2013 lúc 16:56Nov 13, 2013 at 16:56

KaloustekalousteKalouste

811 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges