Hướng dẫn how does python deal with binary numbers? - python đối phó với số nhị phân như thế nào?

Làm thế nào tôi có thể thêm, trừ và so sánh các số nhị phân trong Python mà không chuyển đổi thành thập phân?

Hướng dẫn how does python deal with binary numbers? - python đối phó với số nhị phân như thế nào?

Đã hỏi ngày 6 tháng 10 năm 2009 lúc 3:37Oct 6, 2009 at 3:37

3

Bạn có thể chuyển đổi giữa một biểu diễn chuỗi của nhị phân bằng bin () và int ()

>>> bin(88)
'0b1011000'
>>> int('0b1011000', 2)
88
>>> 

>>> a=int('01100000', 2)
>>> b=int('00100110', 2)
>>> bin(a & b)
'0b100000'
>>> bin(a | b)
'0b1100110'
>>> bin(a ^ b)
'0b1000110'

Đã trả lời ngày 6 tháng 10 năm 2009 lúc 4:19Oct 6, 2009 at 4:19

Hướng dẫn how does python deal with binary numbers? - python đối phó với số nhị phân như thế nào?

John La Rooyjohn La RooyJohn La Rooy

Phù bằng vàng 287K5151 gold badges359 silver badges500 bronze badges

2

Tôi nghĩ rằng bạn đang bối rối về nhị phân là gì. Nhị phân và thập phân chỉ là những đại diện khác nhau của một số - ví dụ: 101 cơ sở 2 và 5 cơ sở 10 là cùng một số. Các hoạt động thêm, trừ và so sánh hoạt động trên các số - 101 cơ sở 2 == 5 cơ sở 10 và bổ sung là cùng một hoạt động logic cho dù bạn đang làm việc cơ sở nào. Thực tế là trình thông dịch python của bạn có thể lưu trữ mọi thứ như nhị phân không 'T ảnh hưởng đến cách bạn làm việc với nó - nếu bạn có một loại số nguyên, chỉ cần sử dụng +, -, v.v.

Nếu bạn có chuỗi các chữ số nhị phân, bạn sẽ phải viết triển khai của riêng mình hoặc chuyển đổi chúng bằng hàm INT (BinaryString, 2).

Đã trả lời ngày 6 tháng 10 năm 2009 lúc 3:44Oct 6, 2009 at 3:44

Steven Schlanskersteven SchlanskerSteven Schlansker

36,8K14 Huy hiệu vàng81 Huy hiệu bạc100 Huy hiệu đồng14 gold badges81 silver badges100 bronze badges

Nếu bạn đang nói về các nhà khai thác bitwise, thì bạn sẽ sau:

~ Not
^ XOR
| Or
& And

Mặt khác, số nhị phân hoạt động chính xác giống như số thập phân, bởi vì các số là số, bất kể bạn nhìn chúng như thế nào. Sự khác biệt duy nhất giữa thập phân và nhị phân là cách chúng ta đại diện cho dữ liệu đó khi chúng ta đang xem xét nó.

Đã trả lời ngày 6 tháng 10 năm 2009 lúc 3:54Oct 6, 2009 at 3:54

SmasherysmasherySmashery

55.6K30 Huy hiệu vàng97 Huy hiệu bạc125 Huy hiệu Đồng30 gold badges97 silver badges125 bronze badges

1

Nhị phân, thập phân, thập lục phân ... cơ sở chỉ quan trọng khi đọc hoặc xuất số, thêm số nhị phân giống như thêm số thập phân: đó chỉ là vấn đề đại diện.

Đã trả lời ngày 6 tháng 10 năm 2009 lúc 3:44Oct 6, 2009 at 3:44

Steven Schlanskersteven SchlanskerPierre Bourdon

36,8K14 Huy hiệu vàng81 Huy hiệu bạc100 Huy hiệu đồng4 gold badges33 silver badges27 bronze badges

Nếu bạn đang nói về các nhà khai thác bitwise, thì bạn sẽ sau:

def addBinary(a, b): # Example: a = '11' + b =' 100' returns as '111'.    
    for ch in a: assert ch in {'0','1'}, 'bad digit: ' + ch    
    for ch in b: assert ch in {'0','1'}, 'bad digit: ' + ch    
    sumx = int(a, 2) + int(b, 2)    
    return bin(sumx)[2:]

Hướng dẫn how does python deal with binary numbers? - python đối phó với số nhị phân như thế nào?

Mặt khác, số nhị phân hoạt động chính xác giống như số thập phân, bởi vì các số là số, bất kể bạn nhìn chúng như thế nào. Sự khác biệt duy nhất giữa thập phân và nhị phân là cách chúng ta đại diện cho dữ liệu đó khi chúng ta đang xem xét nó.

Đã trả lời ngày 6 tháng 10 năm 2009 lúc 3:5411 gold badges32 silver badges50 bronze badges

SmasherysmasheryDec 15, 2017 at 2:59

'''
I expect the intent behind this assignment was to work in binary string format.
This is absolutely doable.
'''

def compare(bin1, bin2):
    return bin1.lstrip('0') == bin2.lstrip('0')

def add(bin1, bin2):
    result = ''
    blen = max((len(bin1), len(bin2))) + 1
    bin1, bin2 = bin1.zfill(blen), bin2.zfill(blen)
    carry_s = '0'
    for b1, b2 in list(zip(bin1, bin2))[::-1]:
        count = (carry_s, b1, b2).count('1')
        carry_s = '1' if count >= 2 else '0'
        result += '1' if count % 2 else '0'
    return result[::-1]

if __name__ == '__main__':
    print(add('101', '100'))

55.6K30 Huy hiệu vàng97 Huy hiệu bạc125 Huy hiệu Đồng

Nhị phân, thập phân, thập lục phân ... cơ sở chỉ quan trọng khi đọc hoặc xuất số, thêm số nhị phân giống như thêm số thập phân: đó chỉ là vấn đề đại diện.Feb 19, 2020 at 5:22

Hướng dẫn how does python deal with binary numbers? - python đối phó với số nhị phân như thế nào?

Gary02127Gary02127Gary02127

Pierre Bourdonpierre Bourdon1 gold badge23 silver badges28 bronze badges

1

102K4 Huy hiệu vàng33 Huy hiệu bạc27 Huy hiệu đồng

Dưới đây là viết lại chức năng được đăng trước đó:

Tom Aranda

5.71811 Huy hiệu vàng32 Huy hiệu bạc 50 Huy hiệu Đồng

Đã trả lời ngày 15 tháng 12 năm 2017 lúc 2:5925 gold badges87 silver badges115 bronze badges

Tôi để lại Func trừ như một bài tập cho người đọc.Mar 4 at 2:28

Hướng dẫn how does python deal with binary numbers? - python đối phó với số nhị phân như thế nào?

Đã trả lời ngày 19 tháng 2 năm 2020 lúc 5:22

class Solution:
    # @param A : string
    # @param B : string
    # @return a strings
    def addBinary(self, A, B):
        num1 = bin(int(A, 2))
        num2 = bin(int(B, 2))
        bin_str = bin(int(num1, 2)+int(num2, 2))
        b_index = bin_str.index('b')
        return bin_str[b_index+1:]

s = Solution()
print(s.addBinary("11", "100"))

4.7811 Huy hiệu vàng23 Huy hiệu bạc28 Huy hiệu đồngJun 1, 2016 at 5:49

Hướng dẫn how does python deal with binary numbers? - python đối phó với số nhị phân như thế nào?

Ví dụ: 00000011 - 00000001 = 00000010Mona Jalal

Bạn có thể loại bỏ các số 0 và sau đó thêm chúng một lần nữa sau khi bạn thực hiện tính toán của bạn! Điều này hoạt động rất dễ dàng.62 gold badges215 silver badges380 bronze badges

Nếu nhị phân của bạn được lưu trữ dưới dạng chuỗi thì bạn có thể chuyển đổi sang INT sẽ tự động tước số 0 từ đầu. Sau khi bạn có câu trả lời của bạn, bạn có thể biến nó trở lại thành một chuỗi và thêm các số 0 để bắt đầu.

Gino Mempin

21.4K25 Huy hiệu vàng87 Huy hiệu bạc115 Huy hiệu đồng5 gold badges23 silver badges40 bronze badges

Đã trả lời ngày 4 tháng 3 lúc 2:28Mar 14, 2018 at 13:19

0

Không chắc có hữu ích không, nhưng tôi để lại giải pháp của mình ở đây:

Hướng dẫn how does python deal with binary numbers? - python đối phó với số nhị phân như thế nào?

Đã trả lời ngày 1 tháng 6 năm 2016 lúc 5:49

Mona Jalalmona Jalal27 gold badges272 silver badges380 bronze badges

31.6K62 Huy hiệu vàng215 Huy hiệu bạc380 Huy hiệu đồngNov 12, 2015 at 13:19

1

Làm thế nào để Python sử dụng dữ liệu nhị phân?

Làm việc với dữ liệu nhị phân trong Python ..
Chương trình Python để chuyển đổi số thập phân thành số nhị phân ..
Số điểm nổi tiêu chuẩn 754 của IEEE ..
Chương trình chuyển đổi 32 bit chính xác duy nhất IEEE 754 Biểu diễn điểm nổi ..
Chương trình cho thập phân để chuyển đổi nhị phân ..
Chương trình cho nhị phân để chuyển đổi thập phân ..

Làm thế nào để Python đại diện cho các giá trị nhị phân?

Trong Python, sử dụng số nhị phân có một vài bước so với sử dụng số thập phân.Khi bạn nhập một số nhị phân, hãy bắt đầu với tiền tố '0b' (đó là số 0 theo sau là một Minuscule B).0b11 giống như nhị phân 11, tương đương với số thập phân 3. Nó không khó, nhưng nó là công việc làm thêm.start with the prefix '0b' (that's a zero followed by a minuscule b). 0b11 is the same as binary 11, which equates to a decimal 3. It's not hard, but it is extra work.

Làm thế nào để Python đọc dữ liệu nhị phân?

Hàm Open () mở một tệp ở định dạng văn bản theo mặc định.Để mở một tệp ở định dạng nhị phân, thêm 'B' vào tham số chế độ.Do đó, chế độ "RB" mở tệp ở định dạng nhị phân để đọc, trong khi chế độ "WB" mở tệp ở định dạng nhị phân để viết.add 'b' to the mode parameter. Hence the "rb" mode opens the file in binary format for reading, while the "wb" mode opens the file in binary format for writing.

Làm thế nào để Python lưu trữ các giá trị nhị phân?

Để gán giá trị ở định dạng nhị phân cho một biến, chúng tôi sử dụng hậu tố 0b.Nó nói với trình biên dịch rằng giá trị (được hậu tố với 0b) là giá trị nhị phân và gán nó cho biến.Lưu ý: Để in giá trị ở định dạng nhị phân, chúng tôi sử dụng hàm bin ().use the 0b suffix. It tells the compiler that the value (suffixed with 0b) is a binary value and assigns it to the variable. Note: To print value in binary format, we use bin() function.