Introducere în manipularea biților
De obicei, un programator lucrează la variabile de tipuri de date precum int, float, double, String sau colecții precum Array, List, ArrayList și așa mai departe. În unele cazuri, programatorii trebuie să aprofundeze mult mai mult datele la octeți și la nivelul de biți pentru a extrage și manipula datele. Limbi precum Java și C # vă permit să manipulați datele la nivel de biți, ceea ce înseamnă că aveți acces la un bit specific într-un octet. În acest subiect, vom afla despre manipularea bitului în Java.
Manipularea biților este adesea necesară atunci când lucrează la Compresia datelor și criptarea datelor, unde programatorul trebuie să extragă date la nivel de biți pentru a codifica, decoda sau comprima datele originale. Există multe alte aplicații de manipulare a biților pe care le vom vedea mai târziu în acest articol.
Java acceptă schimbări pe 3 biți și 4 operatori în bit pentru a efectua operațiuni la nivel de biți. Acești operatori pot fi folosiți pe tipuri integrale (int, scurt, lung și byte) pentru a efectua operațiuni la nivel de biți.
Operatori Java Bitwise și Bitshift
Operator | Descriere |
& | În mod Bit AND |
| | OR în mod OR sau |
~ | Complement cu bit |
<< | Shift stânga |
>> | Schimbare dreapta |
^ | Bit-XOR |
>>> | Schimbarea dreptului nesemnat |
Operatori de manipulare a biților în Java
hai să analizăm mai detaliat operatorii
1) OR în bit
Acesta este un operator binar care ia 2 operanțe și notat cu simbolul „| „. Operatorul cu bituri compară biții corespunzători din cele două operanțe. Dacă oricare dintre bitul operand este 1, atunci ieșirea este 1, dacă nu, va fi 0.
Exemplu
15 = 00001111 (In Binary)
27 = 00011011 (In Binary)
Bitwise OR Operation of 15 and 27
00001111
| 00011011
________
00011111 = 31 (In decimal)
Programul Java
class BitwiseOR (
public static void main(String() args) (
int operand1 = 15, operand2 = 27, output
output= operand1 | operand2;
System.out.println(output);
)
)
Rezultat: 31
2) Bit în sens AND
Acesta este, de asemenea, un operator bit, care ia 2 operanțe și notat cu simbolul „&”. operatorul cu bituri compară biții corespunzători din cele două operanțe. Dacă ambii biți operanzi sunt 1 atunci ieșirea este 1 altfel 0.
Exemplu
15 = 00001111 (In Binary)
27 = 00011011 (In Binary)
Bitwise AND Operation of 15 and 27
00001111
| 00011011
________
00001011 = 11 (In decimal)
Programul Java
class BitwiseAND (
public static void main(String() args) (
int operand1 = 15, operand2 = 27, output
output= operand1 & operand2;
System.out.println(output);
)
)
Rezultat: 11
3) Complement de biți
Spre deosebire de ceilalți doi operatori despre care am discutat până acum, acesta nu ia decât un operand și notat cu simbolul „~”. Acest operator inversează bitul operandului. Dacă bitul operand este 0, atunci îl transformă în 1 și invers.
Exemplu
15 = 00001111 (In Binary)
Bitwise complement Operation of 15
~ 00001111
________
11110000 = 240 (In decimal)
Programul Java
class BitwiseComplement (
public static void main(String() args) (
int operand= 15, output;
output= ~operand;
System.out.println(output);
)
)
Rezultat: -16
Notă: atunci când rulați programul Java veți primi -16 ca o ieșire în loc de 240, deoarece compilatorul arată complementul 2 al acelui număr, adică noțiunea negativă a numărului binar.
Complementul 2 al oricărui număr este echivalent cu - (n + 1) unde n este numărul al cărui complement al lui 2 trebuie calculat. În cazul nostru, complementul 2 al operandului 15 este -16, care este și rezultatul programului.
4) XOR bitwise
Bitwise XOR este un operator binar care ia 2 operanzi și notează cu simbolul „^”. acest operator compară biții corespunzători din cele două operanțe. Dacă biții corespunzători ai celor două operanzi sunt diferiți, acesta dă 1 ca ieșire altceva 0.
Operatorul XOR Bitwise este echivalent cu (Bitwise OR + Complement Bitwise)
Exemplu
15 = 00001111 (In Binary)
27 = 00011011 (In Binary)
Bitwise XOR Operation of 15 and 27
00001111
00011011
________
00010100 = 20 (In decimal)
Programul Java
class BitwiseXor (
public static void main(String() args) (
int operand1= 15, operand2 = 27, output;
output = operand1 operand2;
System.out.println(output);
)
)
Rezultat: 20
5) Schimbarea stânga semnată
Operatorul în mișcare la stânga, schimbă modelul de biți spre stânga de un anumit număr de ori specificat în operand. Operatorul de schimb stânga este notat cu simbolul „<<”.
Exemplu
123 (In binary: 01111011)
123 << 1 evaluates to 246 (In binary: 011110110)
123 << 2 evaluates to 492 (In binary: 0111101100)
123 << 3 evaluates to 984 (In binary:01111011000)
Programul Java
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);
)
)
ieșire: 246, 492, 984
6) Schimbare dreaptă semnată
Operatorul de schimbare dreapta semnat funcționează exact la fel ca operatorul de schimb stânga doar că adaugă zero biți sunt mutați în poziția ridicată.
Exemplu
123 (In binary: 01111011)
123 >> 1 evaluates to 61 (In binary: 00111101)
123 >> 2 evaluates to 30 (In binary: 00011110)
123 >> 3 evaluates to 15 (In binary:00001111)
Programul Java
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);
)
)
Rezultat: 61, 30, 15
7) Schimbarea dreptului nesemnat
Operatorul de deplasare dreapta trece de la zero la poziția din stânga, prin numărul anumit de biți specificat în operand.
Programul Java
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);
)
)
Rezultat : 61, 30, 15
Concluzie - Manipularea biților în Java
Acum că am ajuns la sfârșitul articolului, haideți să ne rezumăm la rezumatul punctului cheie pe care l-am discutat în acest articol. Am văzut care este un pic de manipulare și cazurile sale diferite de utilizare. Am învățat, de asemenea, diferitele tipuri de operatori bit (Bitwise AND, Bitwise OR, Bitwise Complement și Bitwise XOR) și operatori de schimb de biți (Semnat Left Shift Operator, Right Right Shift Operator și unsigned Right shift operator) împreună cu un exemplu și un exemplu Program Java care explică operatori individuali.
Articole recomandate
Acesta este un ghid pentru manipularea biților în Java. Aici discutăm în detaliu operatorii Java Bitwise și Bitshift cu exemple și programe Java și ieșirea acestuia. De asemenea, puteți consulta articolul următor pentru a afla mai multe -
- Ce este interfața Java?
- Instrumente Java
- Cadre Python
- Operatori boolezi din Java