Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah `~2` Sama dengan -3 dalam Python?

Mengapakah `~2` Sama dengan -3 dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-11-18 06:22:01351semak imbas

Why Does `~2` Equal -3 in Python?

Python Bitwise Complement Operator (~~) Diterangkan

Operand bitwise complement (~) dalam Python melakukan operasi BUKAN bitwise pada operannya , menyongsangkan semua bit binari. Operator ini digunakan terutamanya untuk mewakili nombor negatif dalam sistem.

Bagaimana ~ Operator Berfungsi?

Nombor negatif disimpan dalam memori komputer menggunakan pelengkap kedua-duanya tatatanda. Dalam tatatanda ini, bit tanda mewakili sama ada nombor itu positif atau negatif. Baki bit mewakili magnitud nombor.

Pertimbangkan nombor -2. Dalam pelengkap dua, ia diwakili seperti berikut (8 bit):

1111 1110

Perwakilan ini diperoleh dengan mengambil pelengkap binari pasangan positif (2) dan menambah satu.

0000 0010 (positive 2) -> 1111 1101 (complement) -> 1111 1110 (add one for negative)

Bagaimana ~2 Sama dengan -3

Untuk memahami mengapa ~2 sama dengan -3, mari kita periksa pelengkap bitwise 2:

0000 0010 (positive 2) -> 1111 1101 (complement)

Pelengkap ini ialah perwakilan pelengkap dua bagi -3:

0000 0011 (positive 3) -> 1111 1100 (complement) -> 1111 1101 (add one for negative)

Oleh itu, dengan menyongsangkan bit 2 menggunakan operator ~, kita memperoleh corak bit yang mewakili -3 dalam tatatanda pelengkap dua.

Key Point

Adalah penting untuk ambil perhatian bahawa operator ~ hanya melakukan penyongsangan bitwise. Tafsiran bit yang terhasil sebagai nombor positif atau negatif ditentukan oleh perwakilan memori sistem komputer.

Atas ialah kandungan terperinci Mengapakah `~2` Sama dengan -3 dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn