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

Patricia Arquette
Lepaskan: 2024-11-17 17:11:02
asal
530 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan