На Яві ан оператор символ, який виконує вказані операції. У цьому розділі ми обговоримо лише порозрядний оператор і його види з відповідними прикладами.
Типи порозрядних операторів
У Java існує шість типів побітового оператора:
- Побітове І
- Порозрядне виключаюче АБО
- Побітове включне АБО
- Порозрядний комплімент
- Оператори зсуву бітів
Оператори | символ | Використання |
---|---|---|
Побітове І | & | op1 & op2 |
Порозрядне виключаюче АБО | ^ | op1 ^ op2 |
Побітове включне АБО | | | op1 | op2 |
Порозрядний комплімент | ~ | ~ ор |
Порозрядний зсув вліво | << | op1 << op2 |
Порозрядний зсув вправо | >> | op1 >> op2 |
Беззнаковий оператор правого зсуву | >>> на >>> | кількість місць для пересування |
Давайте детально пояснимо порозрядний оператор.
Побітове І (&)
Це двійковий оператор, який позначається символом & . Він повертає 1 тоді і тільки якщо обидва біти дорівнюють 1, інакше повертає 0.
Давайте використаємо порозрядний оператор І в програмі на Java.
покажчик в c
BitwiseAndExample.java
public class BitwiseAndExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise and // 1001 & 1000 = 1000 = 8 System.out.println('x & y = ' + (x & y)); } }
Вихід
x & y = 8
Порозрядне виключаюче АБО (^)
Це двійковий оператор, який позначається символом ^ (вимовляється як карет). Він повертає 0, якщо обидва біти однакові, інакше повертає 1.
Давайте використаємо порозрядний виключаючий оператор АБО в програмі на Java.
BitwiseXorExample.java
public class BitwiseXorExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise XOR // 1001 ^ 1000 = 0001 = 1 System.out.println('x ^ y = ' + (x ^ y)); } }
Вихід
x ^ y = 1
Порозрядне включне АБО (|)
Це двійковий оператор, який позначається символом | (вимовляється як труба). Він повертає 1, якщо один із бітів дорівнює 1, інакше повертає 0.
Давайте використаємо порозрядний оператор АБО в програмі Java.
BitwiseInclusiveOrExample.java
public class BitwiseInclusiveOrExample { public static void main(String[] args) y = ' + (x }
Вихід
x | y = 9
Побітове доповнення (~)
Це унарний оператор, позначений символом ~ (вимовляється як тильда). Він повертає інверсію або доповнення до біта. Це робить кожен 0 1, а кожну 1 0.
як перетворити рядок на int java
Давайте використаємо оператор порозрядного доповнення в програмі на Java.
BitwiseComplimentExample.java
public class BitwiseComplimentExample { public static void main(String[] args) { int x = 2; // bitwise compliment // ~0010= 1101 = -3 System.out.println('~x = ' + (~x)); } }
Вихід
~x = -3
Оператори зсуву бітів
Оператор зсуву використовується для зсуву бітів праворуч або ліворуч. Ми можемо використовувати оператори зсуву, якщо ділимо або множимо будь-яке число на 2. Загальний формат зсуву біта такий:
variable <> number of places to shift;
Наприклад, якщо a=10
a>>2; //shifts two bits a>>4; //shifts 4 bits
Java надає такі типи операторів зсуву:
- Оператор правого зсуву зі знаком або побітовий оператор правого зсуву
- Беззнаковий оператор правого зсуву
- Оператор зсуву вліво зі знаком або побітовий оператор зсуву вліво
Примітка: Java не підтримує беззнаковий оператор зсуву вліво (<<<).< h4> Оператор правого зсуву зі знаком (>>)
Оператор зсуву вправо зі знаком зсуває бітовий шаблон числа в бік правильно із заданою кількістю позицій і заповнює 0. Оператор позначається символом >>. Він також зберігає крайній лівий біт (знаковий біт). Якщо 0 представлений у крайньому лівому біті, це означає, що число є позитивний . Якщо 1 представлений у крайньому лівому біті, це означає, що число є негативний .
Загалом, якщо ми пишемо a>>n, це означає зсув бітів числа вправо з указаною позицією (n). У термінах математики ми можемо представити знаковий оператор зсуву вправо так:
Примітка: коли ми застосовуємо оператор зсуву вправо до додатного числа, ми також отримуємо додатне число в результаті. Подібним чином, коли ми застосовуємо оператор зсуву вправо до від’ємного числа, ми також отримуємо від’ємне число в результаті.
Приклад: застосовуйте знаковий оператор зсуву вправо з указаними позиціями 4, якщо x = 256 і x = -256.
Якщо x = 256
256 >> 4
256/24= 16
Якщо х = -256
-256 >> 4
-256/24= -16
число Армстронга
У наведеному вище прикладі ми помітили, що після зсуву оператор 256 перетворився на 16, а -256 перетворився на -16.
Давайте створимо програму на Java та запровадимо оператор зсуву вліво.
SignedRightShiftOperatorExample.java
public class SignedRightShiftOperatorExample { public static void main(String args[]) { int x = 50; System.out.println('x>>2 = ' + (x >>2)); } }
Вихід
x>>2 = 12
Оператор зсуву вліво зі знаком (<<)< strong> )<>
Оператор зсуву вліво зі знаком (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Він також зберігає крайній лівий біт (знаковий біт). Він не зберігає знаковий біт.)>
Загалом, якщо ми пишемо < Приклад 1: Який буде результат після зсуву a<<3. the value of a is 20.< strong> 3.> Представлення 20 у двійковій системі = 00010100 Після виконання оператора зсуву вліво отримуємо: a << 3 = 10100000 (останні три біти є заповненими бітами) a << 3 = 160 Перевіримо результат за формулою. 20 << 3 20*23= 20*8 = 160 Приклад 2: Який буде результат після зсуву a<<2. the value of a is -10.< strong> 2.> Представлення -10 у двійковій системі = 11110110 a<<2 11011000='<strong' =>-402> Перевіримо результат за формулою. -10 << 3 -10*22= -10*4 = -40 Давайте створимо програму на Java та реалізуємо знаковий оператор зсуву вліво. SignedLeftShiftOperatorExample.java Вихід шилпа шетті вік
public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println('x<<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x<<1 24 = < pre> <h3>Unsigned Right Shift Operator (>>>)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>>>>.</strong> Note that the leftmost position after >> depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a>>>b?</strong> </p> <p>a >>> b = 11110000 >>> 2 = <strong>00111100</strong> </p> <p>The left operand value is moved right by the number of bits specified by the right operand and the shifted bits are filled up with zeros. Excess bits shifted off to the right are discarded.</p> <p>Therefore, before shifting the bits the decimal value of a is 240, and after shifting the bits the decimal value of a is 60.</p> <p>Let's create a Java program and use the unsigned right shift operator.</p> <p> <strong>UnsignedRightShiftOperatorExample.java</strong> </p> <pre> public class UnsignedRightShiftOperatorExample { public static void main(String args[]) { int x = 20; System.out.println('x>>>2 = ' + (x >>>2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x>>>2 = 5 </pre> <hr></1></pre></1>
x>>>2 = 5
1>1>