Nhà điều hành lời khen của Bitwise sẽ đảo ngược các bit nhị phân. Show
Nếu một chút là 1, nó sẽ thay đổi nó thành 0. Nếu bit là 0, nó sẽ thay đổi nó thành 1. Thí dụHãy để một số 4.4. Sau đó ~ 4 sẽ là, 4 = (00000100) 2 ~ 4 = (11111011) 2. Nó sẽ chuyển đổi tất cả 1 thành 0 và 0 thành 1. Giải thích bằng hình ảnhNếu chúng ta in giá trị ~ 4 bằng printf, nó sẽ in -5. Làm sao?Chúng ta hãy xem làm thế nào -5 sẽ được lưu trữ trong máy tính? Như chúng tôi đã thảo luận về các số âm trước đó được biểu thị bằng mẫu bổ sung 2 2. Để biết cách tính toán 2 bổ sung của một số, vui lòng giới thiệu liên kết. Các số nguyên được lưu trữ trong bộ nhớ Vì vậy, -5 sẽ được lưu trữ như dưới đây,-5 will be stored like below, 5 = (00000101) 2 1 Bổ sung 5 = (11111010) 2 Thêm 1 để có được phần bổ sung 2, -5 = (11111011) 2 Kết quả của ~ 4 bằng với biểu diễn của -5 trong nhị phân, do đó ~ 4 là -5.~4 is -5. Ví dụ 2Hãy để số 2, 2 = (00000010) 2 1 Bổ sung 2 = (11111101) 2 Thêm 1 để có được phần bổ sung 2, -5 = (11111011) 2 Kết quả của ~ 4 bằng với biểu diễn của -5 trong nhị phân, do đó ~ 4 là -5.~2 is -3. Ví dụ 2Thí dụ #Bitwise ones complement operator in python var = 3 print("value = ", ~var) # which is equal to -4 Hãy để một số 4.tl; dr 0 is a negative number ( 1). To output a negative number 2 prints 3, then two's complement of 0: 5. Positive numbers are output as is.Có một giá trị nội bộ và biểu diễn chuỗi của nó. Đối với các số nguyên tích cực, về cơ bản chúng trùng khớp:
Cái sau tương đương với:
7 là 8. 0 là 1. Hai chấm ( 1) đại diện cho số lượng vô hạn là ____ 22. Vì bit đáng kể nhất (MSB) của kết quả là 2, kết quả là số âm ( 4). Để xuất số âm 2 in 3, sau đó bổ sung cho hai giá trị nội bộ. Bổ sung của Two được tính bằng cách lật các bit, sau đó thêm 2. Bổ sung hai của 1 là 9. Như vậy:
Để tổng hợp nó, nó lật các bit, thay đổi dấu hiệu. Để xuất một số âm, nó in 3, thì 1 ( 2).Lý do tại sao 2 đầu ra các số âm như vậy, là vì nó coi giá trị được lưu trữ là bổ sung của hai của giá trị tuyệt đối. Nói cách khác, những gì được lưu trữ là 1. Đó là một số âm, và do đó, đó là một số bổ sung của một số giá trị 5. Để tìm 5, nó thực hiện bổ sung cho 1. Đó là bổ sung của hai trong số bổ sung 5 của hai. Đó là 5 (ví dụ 0).Trong trường hợp bạn áp dụng
Điều khó hiểu hơn là 2 (hoặc bất kỳ giá trị nào khác với MSB bằng 2). Hãy đơn giản hóa nó một chút: 4. Đó là bởi vì nó coi 5 là một con số dương. Mà thực sự có ý nghĩa. Vì vậy, 6. Kết quả là một số âm. Bổ sung hai của 7 là 8. Vì thế:
Trong trường hợp bạn sẽ không áp dụng các toán tử bitwise vào kết quả, bạn có thể coi 0:
Nhưng điều đó được cho là không sử dụng nhiều. Một ví dụ cho rằng bạn đã cung cấp một netmask 8 bit (cho đơn giản) và bạn muốn tính toán số lượng của ________ 51. Bạn có thể tính toán chúng bằng cách lật các bit và gọi 1's. You can calculate them by flipping the bits and calling 2 ( 3). But 6, so we've got to cut off the unneeded bits:
Hoặc bạn có thể sử dụng toán tử XOR ( 5):
Làm thế nào để bạn tìm thấy phần bổ sung bitwise của một số trong Python?Toán tử của Python ~ (bitwise không) trả về phần bổ sung số 1 của số. 14 là (1110) ở dạng nhị phân bổ sung 2 của nó. Ở đây, ~ 14 sẽ đảo ngược (tức là 1 bổ sung) tất cả các bit trong biểu mẫu này thành 0001 ... Đảo ngược các bit .. Thêm 1 .. Chuyển đổi sang thập phân .. Thêm dấu hiệu tiêu cực .. Nhà điều hành bổ sung bitwise được tính toán như thế nào?Toán tử bổ sung bitwise là một toán tử Unary (chỉ hoạt động trên một toán hạng). Phải mất một số và đảo ngược tất cả các bit của nó. Khi toán tử bitwise được áp dụng trên các bit sau đó, tất cả 1 đều trở thành 0 và ngược lại. Toán tử cho bổ sung bitwise là ~ (Tilde).~ (Tilde).
Làm thế nào để Python tính toán các toán tử bitwise?BitWise và toán tử: Trả về 1 nếu cả hai bit là 1 khác 0. BitWise hoặc Toán tử: Trả về 1 nếu một trong số đó là 1 khác 0. BitWise không vận hành: Trả về số bổ sung của một số.... Các nhà khai thác bitwise .. Làm thế nào để bạn bổ sung trong Python?Binary bổ sung cho các số nguyên âm: SO -1 là bổ sung (1 - 1) = bổ sung (0) = "11111111" và -10 là bổ sung (10 - 1) = bổ sung (9) = bổ sung ("00001001") ="11110110".Điều này có nghĩa là các số âm đi tất cả các cách xuống -128 ("10000000").Tất nhiên, Python không sử dụng số 8 bit.-1 is complement(1 - 1) = complement(0) = "11111111", and -10 is complement(10 - 1) = complement(9) = complement("00001001") = "11110110". This means that negative numbers go all the way down to -128 ("10000000"). Of course, Python doesn't use 8-bit numbers. |