~: Operator penafian bitwise: menafikan setiap bit perduaan data, iaitu, tukar 1 kepada 0, tukar 0 kepada 1 .
~x adalah serupa dengan -x-1
①Kod asal, kod songsang dan kod pelengkap bagi nombor positif ialah.
②Pelengkap nombor negatif yang sama ialah bit tanda kekal tidak berubah, bit yang tinggal disongsangkan dan 1 ditambah
③ kod asal ialah pelengkap : Negate, +1
④Kod pelengkap untuk mencari kod asal: Negate, +1
⑤ Nombor negatif ialah disimpan dalam kod pelengkap
⑥Operasi penolakan dilakukan pada kod asal
⑦Sign bit, 1 bermaksud nombor negatif, 0 bermaksud nombor positif
~(-2)
Pertama sekali, anda perlu mengetahui bentuk binari -2 dalam komputer ⑤ dan ②, kami tahu:
-2 Kod asal: 1000 0000 0000 0010
-2 Kod penolakan: 11111 1111 Bit tanda kekal tidak berubah, semua orang perlu menafikan
-2 pelengkap: 1111 1111 1111 1110 #Kod pelengkap = pelengkap + 1
1111 1111 1111 1110 ialah -2 dalam komputer Prototaip
kini mula menafikannya, bit tanda kekal tidak berubah,
terbalikkan bitwise: 0000 0000 0000 0001 🎜> jelas sekali ialah satu nombor Positif, kod asalnya adalah dirinya sendiri, jadi outputnya ialah 1.
~2
2 Kod asal, kod songsang, kod pelengkap: 0000 0000 0000 0010
Penolakan bitwise: 1111 1111 1111 1101Apakah yang perlu saya lakukan jika ini ialah nombor negatif? Boleh saya tanya terus?
Jelas sekali ini tidak mungkin, ⑥ berkata: hasil pengiraan operasi penolakan dilakukan pada kod asal, ⑤ juga berkata: nombor negatif disimpan dalam kod pelengkap
1111 1111 1111 1101 Ia adalah pelengkap 0000 0000 0000 0010, tetapi apa yang kita mahukan ialah hasilnya, bukan prototaip dalam komputer,
betul-betul, ④ pelengkap untuk mencari kod asal: negate, +1
>
>
Sebagai contoh, jika 1 disongsangkan, perwakilan binari 8-bit bagi 1 ialah: 0000 0001, dan hasilnya selepas penyongsangan ialah: 1111 1110, untuk komputer, nombor binari bermula dengan 1 mewakili nombor negatif, jadi apakah sebenarnya yang diwakili 1111 1110 Jika anda ingin mengetahui nilai ini, anda boleh mencari pelengkapnya, iaitu, mula-mula ambil pelengkap: 0000 0001 , tambah 1:0000 0010, menunjukkan bahawa kod asal 1111 1110 ialah 0000 0010, iaitu nombor positif 2, jadi 1111 1110 mewakili nombor negatif -2
Kanan -2 adalah songsang. penyongsangan Nilai selepas adalah 1, jadi ~(-2)=1, ~1=-2
Atas ialah kandungan terperinci Cara menggunakan operator negasi dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!