Rumah >Java >javaTutorial >Manipulasi Bit di Jawa
Biasanya, pengaturcara bekerja pada pembolehubah jenis data seperti int, float, double, String atau koleksi seperti Array, List, ArrayList dan sebagainya. Dalam sesetengah kes, pengaturcara perlu pergi lebih mendalam ke dalam data pada bait dan tahap bit untuk mengekstrak dan memanipulasi data. Bahasa seperti Java dan C# membolehkan anda memanipulasi data pada tahap bit, yang bermaksud anda mempunyai akses kepada bit tertentu dalam bait. Dalam topik ini, kita akan belajar tentang Manipulasi Bit dalam Java.
Manipulasi Bit dalam Java selalunya diperlukan apabila bekerja pada Pemampatan Data dan Penyulitan Data, di mana pengaturcara perlu mengekstrak data pada tahap bit untuk mengekod, menyahkod atau memampatkan data asal. Terdapat banyak lagi aplikasi manipulasi Bit yang akan kita lihat kemudian dalam artikel ini.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Java menyokong anjakan 3-bit dan 4 pengendali bitwise untuk melaksanakan operasi pada tahap bit. Operator ini boleh digunakan pada jenis kamiran (int, pendek, panjang dan bait) untuk melaksanakan operasi pada tahap bit.
Berikut ialah pengendali:
Operator | Description |
& | Bitwise AND |
| | Bitwise OR |
~ | Bitwise Complement |
<< | Left Shift |
>> | Right Shift |
^ | Bitwise XOR |
>>> | Unsigned Right Shift |
Mari kita lihat pengendali dengan lebih terperinci.
Ini ialah pengendali binari yang mengambil 2 operan dan dilambangkan dengan simbol “| “. Operator bitwise membandingkan bit yang sepadan bagi kedua-dua operan. Jika mana-mana bit operan ialah 1, maka outputnya ialah 1; jika tidak, ia akan menjadi 0.
Contoh
15 = 00001111 (Dalam Perduaan)
27 = 00011011 (Dalam Perduaan)
Bitwise ATAU Operasi 15 dan 27
00001111
| 00011011
________
00011111 = 31 (Dalam perpuluhan)
Program Java
public class BitwiseOR { public static void main(String[] args) { int operand1 = 15, operand2 = 27, output = operand1 | operand2; System.out.println(output); } }
Output:
Ini juga merupakan pengendali bitwise, yang mengambil 2 operan dan dilambangkan dengan simbol “&”. operator bitwise membandingkan bit yang sepadan bagi kedua-dua operan. Jika kedua-dua bit operan ialah 1, maka outputnya ialah 1; jika tidak, 0.
Contoh
15 = 00001111 (Dalam Perduaan)
27 = 00011011 (Dalam Perduaan)
Bitwise DAN Operasi 15 dan 27
00001111
| 00011011
________
00001011 = 11 (Dalam perpuluhan)
Program Java
public class BitwiseAND { public static void main(String[] args) { int operand1 = 15, operand2 = 27, output = operand1 & operand2; System.out.println(output); } }
Output:
Tidak seperti dua operator lain yang telah kita bincangkan setakat ini, ini hanya memerlukan satu operan dan menandakan simbol "~". Operator ini menyongsangkan bit operan. Jika bit operan ialah 0, maka ia menukarkannya kepada 1 dan begitu juga sebaliknya.
Contoh
15 = 00001111 (Dalam Perduaan)
Pelengkap Bitwise Operasi 15
~ 00001111
________
11110000 = 240 (Dalam perpuluhan)
Program Java
public class BitwiseComplement { public static void main(String[] args) { int operand= 15, output; output= ~operand; System.out.println(output); } }
Output:
Bitwise XOR ialah operator binari yang mengambil 2 operan dan menandakan dengan simbol "^". operator ini membandingkan bit yang sepadan bagi kedua-dua operan jika bit yang sepadan bagi kedua-dua operan adalah berbeza yang ia memberikan 1 sebagai output yang lain 0.
Pengendali XOR Bitwise adalah bersamaan dengan (Bitwise OR + Bitwise Complement)
Contoh
15 = 00001111 (Dalam Perduaan)
27 = 00011011 (Dalam Perduaan)
Operasi XOR Bitwise 15 dan 27
00001111
^ 00011011
________
00010100 = 20 (Dalam perpuluhan)
Program Java
public class BitwiseXor { public static void main(String[] args) { int operand1= 15, operand2 = 27, output; output = operand1 ^ operand2; System.out.println(output); } }
Output:
Pengendali anjakan bitwise ke kiri mengalihkan corak bit ke kiri dengan bilangan kali tertentu yang dinyatakan dalam operan. Operator syif kiri dilambangkan dengan simbol “<<”.
Contoh
123 (Dalam binari: 01111011)
123 << 1 dinilai kepada 246 (Dalam binari: 011110110)
123 << 2 menilai kepada 492 (Dalam binari: 0111101100)
123 << 3 dinilai kepada 984 (Dalam binari:01111011000)
Program Java
public class LeftShiftOperator { public static void main(String[] args) { int operand = 123; System.out.println(operand << 1); System.out.println(operand << 2); System.out.println(operand << 3); } }
output:
Operator anjakan kanan yang ditandatangani berfungsi sama seperti operator anjakan kiri, cuma ia menambah bit sifar dialihkan ke kedudukan tertib tinggi.
Contoh
123 (Dalam binari: 01111011)
123 >> 1 menilai kepada 61 (Dalam binari: 00111101)
123 >> 2 menilai kepada 30 (Dalam binari: 00011110)
123 >> 3 dinilai kepada 15 (Dalam binari:00001111)
Program Java
public class RightShiftOperator { public static void main(String[] args) { int operand = 123; System.out.println(operand >> 1); System.out.println(operand >> 2); System.out.println(operand >> 3); } }
Output:
Pengendali anjakan kanan menganjak sifar ke kedudukan paling kiri dengan bilangan bit tertentu yang dinyatakan dalam operan.
Program Java
public class UnSignedRightShiftOperator { public static void main(String[] args) { int operand = 123; System.out.println(operand >>> 1); System.out.println(operand >>> 2); System.out.println(operand >>> 3); } }
Output:
Sekarang kita telah sampai ke penghujung artikel, mari kita akhiri dengan meringkaskan perkara utama yang telah kita bincangkan dalam artikel ini. Kami telah melihat apa itu sedikit manipulasi dan kes penggunaannya yang berbeza. Kami juga telah mempelajari pelbagai jenis pengendali bitwise (Bitwise AND, Bitwise OR, Bitwise Complement dan Bitwise XOR) dan operator anjakan bit (Pengendali Anjakan Kiri yang Ditandatangani, Operator Anjakan Kanan yang ditandatangani dan operator anjakan Kanan yang tidak ditandatangani) bersama-sama dengan contoh dan sampel Program Java menerangkan operator individu.
Atas ialah kandungan terperinci Manipulasi Bit di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!