Rumah  >  Artikel  >  Java  >  Bila dan Cara Memanfaatkan Kuasa Operator Sama Paip \"|=\"

Bila dan Cara Memanfaatkan Kuasa Operator Sama Paip \"|=\"

Barbara Streisand
Barbara Streisandasal
2024-10-23 18:18:52558semak imbas

When and How to Harness the Power of the Pipe Equal Operator

Pandangan Lebih Dekat pada Pipe Equal Operator "|=": Manipulasi Bitwise Disahkan

Dalam bidang pengaturcaraan, sejumlah besar pengendali memperkasakan pengkod untuk memanipulasi data dan melakukan pengiraan. Antaranya, pengendali "|=" yang sukar difahami boleh menyebabkan ramai yang menggaru kepala. Pengendali yang penuh teka-teki ini, yang sering ditemui dalam repositori sumber terbuka, memegang kunci untuk memahami operasi bitwise.

Pengendali "|=" pada asasnya ialah bentuk operasi tugasan ringkas yang melibatkan pengendali OR bitwise ("|") . Ia menyerupai pengendali "=" (tugasan) tetapi dengan aksara paip tambahan ("|"), memberikan cara yang elegan untuk mengubah suai pembolehubah sasaran.

Sebagai contoh, pertimbangkan coretan kod berikut:

<code class="java">Notification notification = new Notification(icon, tickerText, when);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;</code>

Di sini, pengendali "|=" digunakan untuk menambah bendera pada sifat "lalai" objek "pemberitahuan". Ia bersamaan dengan bentuk dikembangkan berikut:

<code class="java">notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;
notification.defaults = notification.defaults | Notification.DEFAULT_VIBRATE;</code>

Seperti yang anda mungkin telah meneka, pemalar "Notification.DEFAULT_SOUND" dan "Notification.DEFAULT_VIBRATE" membawa nilai bendera yang diwakili sebagai kuasa dua:

<code class="java">public static final int DEFAULT_SOUND = 1;
public static final int DEFAULT_VIBRATE = 2; // equivalent to 1 << 1 or 10 in binary

Menggunakan operasi OR bitwise membolehkan manipulasi bendera yang cekap. Menambah bendera adalah semudah melakukan operasi bitwise ATAU:

<code class="java">int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 -> 011
myFlags |= DEFAULT_LIGHTS;</code>

Sebaliknya, ujian jika bendera ditetapkan boleh dicapai menggunakan operator bitwise AND ("&"):

<code class="java">boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;</code>

Memahami operator bitwise OR dan penggunaannya bersama dengan operator pipe equal adalah asas kepada pemahaman kod dan penyahpepijatan. Dengan merungkai selok-belok manipulasi bitwise, anda boleh membuka kunci potensi penuh pengendali "|=" dan memanfaatkan kuasanya untuk memanipulasi bendera dengan mudah.

Atas ialah kandungan terperinci Bila dan Cara Memanfaatkan Kuasa Operator Sama Paip \"|=\". 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