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

Mengapakah `~2` Menghasilkan `-3` dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-17 17:11:02622semak imbas

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

Memahami Operator Pelengkap Bitwise Python (~)

Mengapa ~2 menghasilkan -3 dalam Python? Operator pelengkap bitwise (~), selalunya dilambangkan sebagai tilde, memainkan peranan penting dalam operasi bitwise. Untuk memahami cara kerjanya, mari kita mendalami konsep perwakilan pelengkap dua.

Integer negatif dalam Python disimpan menggunakan pelengkap dua, yang melibatkan penyongsangan perwakilan perduaan bagi pasangan positif dan menambah satu. Sebagai contoh, perwakilan binari bagi -2 dalam pelengkap dua ialah:

1111 1110

Ini diperoleh dengan menyongsangkan bit perwakilan binari dua (0000 0010) dan menambah satu. Bit peneraju berfungsi sebagai bit tanda, menandakan nilai negatif.

Sekarang, mari kita periksa cara menggunakan operator pelengkap kepada dua petunjuk kepada -3:

two: 0000 0010
~two: 1111 1101

Kami hanya menyongsangkan bit daripada dua, menghasilkan perwakilan songsang. Walau bagaimanapun, perwakilan songsang ini berlaku untuk menyelaraskan dengan perwakilan pelengkap kedua-dua bagi -3, iaitu:

1111 1101

Oleh itu, menggunakan operator pelengkap kepada dua dengan berkesan menyediakan perwakilan pelengkap kedua-dua bagi -3.

Adalah penting untuk ambil perhatian bahawa pengendali pelengkap (~) hanya membalikkan bit nombor. Tafsiran sebenar bit ini bergantung pada seni bina mesin dan konteks di mana ia digunakan. Dalam kes integer dalam Python, mesin mentafsir bit terbalik mengikut perwakilan pelengkap kedua-duanya untuk nombor negatif.

Atas ialah kandungan terperinci Mengapakah `~2` Menghasilkan `-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