Rumah  >  Artikel  >  Java  >  Shift operator dan tugasan trengkas bitwise

Shift operator dan tugasan trengkas bitwise

王林
王林asal
2024-08-17 18:48:32338semak imbas

1. Operator Anjakan Bit

  • <<: Beralih ke kiri.
  • >>: Beralih ke kanan.
  • >>>: Anjakan kanan tidak ditandatangani (dengan pelapik sifar).

2. Sintaks Umum Operator Shift
nilai << num-bits: Mengalihkan bit nilai ke kiri.
nilai >> num-bits: Mengalihkan bit nilai ke kanan, mengekalkan bit tanda.
nilai >>> num-bits: Mengalihkan bit nilai ke kanan, memasukkan sifar di sebelah kiri.

3. Beralih ke Kiri

  • Setiap anjakan ke kiri menyebabkan semua bit nilai dialihkan satu kedudukan ke kiri.
  • Sedikit 0 disisipkan ke kanan.
  • Kesan: Darab nilai dengan 2 dengan setiap sesaran.

4. Beralih ke Kanan

  • Setiap anjakan kanan menggerakkan semua bit satu kedudukan ke kanan.
  • Bit tanda dikekalkan: 0 untuk nilai positif dan 1 untuk nilai negatif.
  • Kesan: Bahagikan nilai dengan 2 pada setiap syif, dengan pembundaran ke bawah.

5. Beralih ke Kanan Tiada Isyarat (>>>)

  • Tiada pemeliharaan bit tanda; sisipan 0 di sebelah kiri.
  • Digunakan dalam corak bit yang nilainya dianggap sebagai nombor tidak bertanda.

6. Anjakan bukan putaran

  • Bit yang dialih keluar hilang.
  • Anjakan tidak membenarkan pemulihan bit dialih keluar.

Contoh:
Shift Kiri dan Kanan
*ShiftDemo *

Penjagaan semasa Mengalihkan Bait dan Nilai Singkat

  • Java secara automatik mempromosikan bait dan pendek kepada int apabila menilai ungkapan.

Contoh:

  • Menukar nilai bait negatif ke kanan: apabila dinaikkan pangkat kepada int, bit tertib yang lebih tinggi diisi dengan 1.
  • Apabila beralih ke kanan dengan sifar padding (>>>), ini boleh menyebabkan masalah kerana 24 bit teratas akan menjadi 1 sebelum sifar mula muncul.

Tugasan Ringkas dengan Operator Bitwise

  • Semua pengendali bitwise binari mempunyai bentuk trengkas yang menggabungkan tugasan dengan operasi bitwise.

Contoh

x = x ^ 127;
x ^= 127;

Os operadores de deslocamento e atribuições abreviadas bitwise

Atas ialah kandungan terperinci Shift operator dan tugasan trengkas bitwise. 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