Bagaimana untuk melakukan penafian bitwise dalam javascript

青灯夜游
Lepaskan: 2021-12-07 12:12:28
asal
3245 orang telah melayarinya

Dalam JavaScript, anda boleh menggunakan operator "~" untuk melaksanakan penolakan bitwise, dengan sintaks "~ operand"; operan disongsangkan sedikit demi sedikit.

Bagaimana untuk melakukan penafian bitwise dalam javascript

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.

Dalam JavaScript, anda boleh menggunakan operator "~" untuk melaksanakan penolakan bitwise. Contohnya, ~1 = -2, ~-3=2, ~true=-2, ~false=-1

Pengendali "~" boleh melihat perwakilan binari bagi nilai yang ditentukan dan memilih binari operan Lakukan operasi penolakan sedikit demi sedikit

  • Langkah 1: Tukar operan kepada integer binari 32-bit.

  • Langkah 2: Lakukan operasi penyongsangan sedikit demi sedikit.

  • Langkah 3: Tukar pelengkap binari kepada nombor titik terapung perpuluhan.

Melaksanakan operasi NOT bitwise pada 12, dan nilai pulangan ialah -13.

console.log( ~ 12 );  //返回值-13
Salin selepas log masuk

Rajah berikut menganalisis proses melaksanakan operasi NOT bitwise pada 12 dalam bentuk formula aritmetik.

Bagaimana untuk melakukan penafian bitwise dalam javascript

Cara mengira penyongsangan bitwise

Langkah peraturan operasi untuk penyongsangan bitwise:

1. Tukar perpuluhan kepada kod asal

Tukar kepada kod asal binari, bit tertinggi ialah bit tanda, 0 ialah nombor positif, 1 ialah nombor negatif

    十进制   ---->  原码
      1   ---->  00000001
     -1   ---->  10000001
Salin selepas log masuk

2. Kod asal Tukar kepada kod pelengkap

Kod pelengkap bagi nombor positif ialah kod asal, kod pelengkap bagi nombor negatif mengekalkan bit tanda tidak berubah dan bit yang tinggal disongsangkan

    十进制  ---->   原码    ---->  反码
      1    ----> 00000001 ----> 00000001
     -1    ----> 10000001 ----> 11111110
Salin selepas log masuk

3. Tukar kod pelengkap kepada kod pelengkap

Pelengkap nombor positif masih kod asal, pelengkap nombor negatif ialah pelengkap pelengkap tambah 1

    十进制  ---->    原码   ---->   反码   ---->  补码
      1    ----> 00000001 ----> 00000001 ----> 00000001
     -1    ----> 10000001 ----> 11111110 ----> 11111111
Salin selepas log masuk

4. Pelengkap bagi pelengkap disongsangkan untuk mendapatkan kod asal

 Integer positifSelepas pelengkap disongsangkan, kedudukan tanda ialah 1, iaitu integer negatif, jadi pelengkap dikira mengikut kaedah integer negatifKod asal diperolehi dengan operasi songsang

Lakukan operasi songsang untuk mendapatkan kod asal Mula-mula, tukarkan pelengkap penyongsangan kepada pelengkap, formula: pelengkap = pelengkap - 1 , dan kemudian tukar pelengkap kepada kod asal, dengan bit tanda tidak berubah

  十进制  ---->    原码    ---->   反码    ---->   补码     ---->  补码取反   ---->  取反补码转成反码  ---->  转成原码
    1   ----> 00000001  ----> 0000001  ---->  00000001  ----> 11111110   ---->   11111101    ---->  10000010
Salin selepas log masuk

Selepas menafikan pelengkap a. integer negatif, kedudukan tanda ialah 0, iaitu integer positif Memandangkan pelengkap dan pelengkap integer positif adalah diri mereka sendiri, tidak perlu melakukan operasi songsang

  十进制  ---->    原码    ---->   反码     ---->   补码      ---->   补码取反得原码  
    -1  ---->  10000001  ----> 11111110  ---->  11111111   ---->     00000000    
Salin selepas log masuk

5. Tukar kod asal. menjadi binari

 十进制  ---->    原码    ---->   反码    ---->   补码     ---->  补码取反   ---->  取反补码转成反码  ---->  转成原码  ---->  转成二进制
    1   ----> 00000001  ----> 0000001  ---->  00000001  ----> 11111110   ---->   11111101    ---->  10000010 ---->   -2
Salin selepas log masuk
  十进制  ---->    原码    ---->   反码     ---->   补码      ---->   补码取反得原码   ---->  转成二进制
    -1  ---->  10000001  ----> 11111110  ---->  11111111   ---->    00000000     ---->     0
Salin selepas log masuk

Oleh itu, ~1=-2, ~-1=0

Fungsi menafikan dan kemudian menafikan~~

Operator ~ bermaksud penolakan bitwise, ~~ ( Penolakan dan kemudian penolakan) sebenarnya, dalam JS, anda boleh tukar nombor titik terapung kepada integer .

 console.log(~~1.11);          //1
 console.log(~~-25.11);       //-25
Salin selepas log masuk

[Cadangan berkaitan: Tutorial pembelajaran javascript]

Atas ialah kandungan terperinci Bagaimana untuk melakukan penafian bitwise dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan