Cái bổ sung trong chương trình python

landlord1984
Người Pháp ngớ ngẩn

Bài đăng. 45

Chủ đề. 21

Đã tham gia. Tháng 12 năm 2016

Danh tiếng. 0

#1

Jan-19-2017, 07. 50 AM [Bài đăng này đã được sửa đổi lần cuối. 19-Jan-2017, 10. 18 AM bởi Kebap. ]

Tôi muốn tìm phần bù của một số
Ví dụ.

Biểu diễn nhị phân của 5 là 101 [không có bit 0 đứng đầu] và phần bù của nó là 010. Vì vậy, bạn cần xuất 2.
Biểu diễn nhị phân của 1 là 1 [không có bit 0 đứng đầu] và phần bù của nó là 0. Vì vậy, bạn cần xuất 0.

Từ. https. //www. hướng dẫn. com/trăn/bi. mẫu. htm
Nó gợi ý rằng chỉ cần sử dụng "~". Nó cho thấy.

______0Nhưng trên python3 của tôi. 5, những gì tôi nhận được là.
______1Kết quả là số -61 đúng, nhưng dạng nhị phân của nó không phải là phần bù của a.

Chuyện gì đã xảy ra vậy?

Cảm ơn,

L

Hồi đáp

Tìm thấy

Hồi đáp

Aquaplant
Nuốt không tải

Bài viết. 4

Chủ đề. 1

Đã tham gia. Tháng 1 năm 2017

Danh tiếng. 0

#2

19-Jan-2017, 01. 42 CH

Xin chào,


ở đây giải thích rất rõ.
http. // siêu người dùng. com/câu hỏi/975684/co. -to-binary

Có sự khác biệt nhỏ giữa phần bù 1 và phần bù 2.
Phần bù của 1 chỉ cần đổi 0->1 và 1->0, chẳng hạn như 1010 trở thành 0101.
Với phần bù 2, bạn tiến hành tương tự, nhưng thêm 1 vào cuối. 1010->0101 [phần bù 1] +0001 -> 0110 [phần bù 2].

Bây giờ bạn có thể biểu diễn các số dương. Điều gì về tiêu cực? . Điều đó có nghĩa là 0 cho + và 1 cho -.
1111 1111 đến 0111 1111 [8 bit. = 1 byte]; .

Để trả lời câu hỏi của bạn.
60 [dec] -> 0011 1100 [bin]
Phần bù của 1. 1100 0011, nghĩa là số 1 đầu tiên -> - và 100 0011 là 67. Bạn làm việc với một Byte [=8bit], 1 đã được gán, vậy còn 7. 2**7 = 128. Bây giờ bạn trừ đi [vì đây là một giá trị âm và đây là cách các giá trị âm được biểu diễn dưới dạng nhị phân] giá trị 67 này; .


Với Python 3. 5.

>>> bin[~60]
'-0b111101'
>>> format[~60, 'b']
'-111101'
Dấu đã được lưu trữ riêng, vì vậy bạn chỉ cần lấy dạng nhị phân của 60 và "phần bù của 2" bằng cách thêm 1. 61.
Tôi không có kiến ​​thức chi tiết về cách python lưu trữ bit, nhưng từ hành vi của nó, tôi đề xuất kết quả này.

Hy vọng lời giải thích của tôi dễ hiểu.

Hồi đáp

Tìm thấy

Hồi đáp

landlord1984
Người Pháp ngớ ngẩn

Bài đăng. 45

Chủ đề. 21

Đã tham gia. Tháng 12 năm 2016

Danh tiếng. 0

#3

20-Jan-2017, 03. 51 giờ sáng

[19-Jan-2017, 01. 42 PM] Aquaplant đã viết. '-0b111101'
Cảm ơn vì thông tin. Bây giờ tôi hiểu có nhiều cách khác nhau để bổ sung.

Nhưng tôi vẫn chưa biết cách chuyển '0011 1100' thành '1100 0011' bằng hàm có sẵn trong Python 3. 5

Có ý kiến ​​gì không?

Hồi đáp

Tìm thấy

Hồi đáp

wavic
Những thứ tương tự của Yard

Bài đăng. 2.955

Chủ đề. 48

Đã tham gia. Tháng 9 năm 2016

Danh tiếng. 90

#4

20-Jan-2017, 07. 44 giờ sáng

Bạn có thể triển khai nó.

______3

Output:

>>> bswitch[10] 5 >>> bin[10] '0b1010' >>> bin[5] '0b101' >>> bswitch[32] 31 >>> bin[32] '0b100000' >>> bin[31] '0b11111' >>>

"Như họ nói ở Mexico 'dosvidaniya'. Điều đó tạo nên hai vidaniyas. "
https. // giải phóng. sợ. tổ chức

Hồi đáp

Tìm thấy

Hồi đáp

Giả sử chúng ta có hai số x và y. Ta phải kiểm tra xem một trong hai số này có phải là số bù 1 của số kia hay không. Chúng ta đều biết phần bù 1 của số nhị phân là lật tất cả các bit từ 0 thành 1 hoặc 1 thành 0

Vì vậy, nếu đầu vào là x = 9, y = 6, thì đầu ra sẽ là True vì các biểu diễn nhị phân là x = 1001 và y = 0110 bổ sung cho nhau

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • z = x XOR y
  • trả về true khi tất cả các bit trong z được đặt, nếu không thì trả về false

Ví dụ

Chúng ta hãy xem triển khai sau đây để hiểu rõ hơn -

Bản thử trực tiếp

def all_one[n]:
   if n == 0:
      return False;
   if [[n + 1] & n] == 0:
      return True
   return False
def solve[x, y]:
   return all_one[x ^ y]
x = 9
y = 6
print[solve[x, y]]

Đầu vào

9, 6

đầu ra

True

Phần bù 1 của 10101 là gì?

Vì vậy, 10101 + 11010 =1 01111. Vì, có mang bit 1, vì vậy hãy thêm bit này vào LSB của kết quả đã cho, tôi. e. , 01111+1=10000 là đáp án. Theo thuật toán trên, lấy phần bù 1 của phép trừ 11110, sẽ là 00011. Sau đó cộng cả hai, Vậy, 11001 + 00011 =11100. . Bổ sung của một người

Toán tử bổ sung trong Python là gì?

Toán tử cho phần bù theo bit là ~ [Dấu ngã] .

Phần bù của 1 trong hệ thống số là gì?

Hệ bù một hoặc số học bù một là một hệ thống trong đó các số âm được biểu diễn bằng nghịch đảo của biểu diễn nhị phân của các số dương tương ứng.

Phần bù 2 trong Python là gì?

Phần bù hai của một số nhị phân được định nghĩa là giá trị thu được bằng cách lấy lũy thừa lớn của hai trừ đi một số [cụ thể là từ .

Chủ Đề