logo

Битни оператор у Јави

На Јави, ан оператер је симбол који обавља наведене операције. У овом одељку ћемо разговарати само о битни оператор и његови типови са правим примерима.

Типови битних оператора

Постоји шест типова битског оператора у Јави:

  • Битвисе АНД
  • Ексклузивно ОР
  • Битова укључено ОР
  • Битвисе Цомплимент
  • Оператори померања бита
Оператери Симбол Користи
Битвисе АНД & оп1 и оп2
Ексклузивно ОР ^ оп1 ^ оп2
Битова укључено ОР | оп1 | оп2
Битвисе Цомплимент ~ ~ оп
Побитно померање улево << оп1 << оп2
Побитни помак удесно >> оп1 >> оп2
Унсигнед Ригхт Схифт Оператор >>> на >>> број места за смену

Хајде да детаљно објаснимо битски оператор.

Битно И (&)

То је бинарни оператор означен симболом & . Враћа 1 ако и само ако су оба бита 1, иначе враћа 0.

Битни оператор у Јави

Хајде да користимо битовски АНД оператор у Јава програму.

реаговати сто

БитвисеАндЕкампле.јава

 public class BitwiseAndExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise and // 1001 &amp; 1000 = 1000 = 8 System.out.println(&apos;x &amp; y = &apos; + (x &amp; y)); } } 

Излаз

 x &amp; y = 8 

Ексклузивно ИЛИ (^)

То је бинарни оператор означен симболом ^ (изговара се као карет). Враћа 0 ако су оба бита иста, иначе враћа 1.

Битни оператор у Јави

Хајде да користимо побитни искључиви оператор ОР у Јава програму.

БитвисеКсорЕкампле.јава

 public class BitwiseXorExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise XOR // 1001 ^ 1000 = 0001 = 1 System.out.println(&apos;x ^ y = &apos; + (x ^ y)); } } 

Излаз

 x ^ y = 1 

Укључиво по битовима ИЛИ (|)

То је бинарни оператор означен симболом | (изговара се као лула). Враћа 1 ако је било који од бита 1, иначе враћа 0.

Битни оператор у Јави

Хајде да користимо битовски инклузивни ОР оператор у Јава програму.

БитвисеИнцлусивеОрЕкампле.јава

 public class BitwiseInclusiveOrExample { public static void main(String[] args) y = &apos; + (x } 

Излаз

 x | y = 9 

Комплемент у битовима (~)

То је унарни оператор означен симболом ~ (изговара се као тилда). Враћа инверзну или допуну бита. То чини сваких 0 на 1 и сваких 1 на 0.

лисица против вука
Битни оператор у Јави

Хајде да користимо битни оператор комплемента у Јава програму.

БитвисеЦомплиментЕкампле.јава

 public class BitwiseComplimentExample { public static void main(String[] args) { int x = 2; // bitwise compliment // ~0010= 1101 = -3 System.out.println(&apos;~x = &apos; + (~x)); } } 

Излаз

 ~x = -3 

Оператори померања бита

Оператор померања се користи за померање битова удесно или улево. Можемо користити операторе померања ако било који број поделимо или помножимо са 2. Општи формат за померање бита је следећи:

 variable &lt;&gt; number of places to shift; 

На пример, ако је а=10

 a&gt;&gt;2; //shifts two bits a&gt;&gt;4; //shifts 4 bits 

Јава пружа следеће типове оператора смене:

  • Оператор десног померања са потписом или Оператор десног померања у битовима
  • Унсигнед Ригхт Схифт Оператор
  • Оператор померања улево са потписом или Оператор померања у лево

Напомена: Јава не подржава непотписани оператор померања улево (<<<).< h4>

Потписани оператер десне смене (>>)

Потписани оператор померања удесно помера битни образац броја према јел тако са одређеним бројем позиција и попуњава 0. Оператор се означава симболом >>. Такође чува крајњи леви бит (значни бит). Ако 0 је представљен на крајњем левом биту, то значи да је број позитивним . Ако 1 је представљен на крајњем левом биту, то значи да је број негативан .

Уопштено говорећи, ако напишемо а>>н, то значи да се битови броја померају удесно са одређеном позицијом (н). У смислу математике, можемо представити потписани оператор померања удесно на следећи начин:

Битни оператор у Јави

Напомена: Када применимо оператор померања удесно на позитиван број, добијамо и позитиван број у резултату. Слично, када применимо десни оператор померања на негативан број, такође добијамо негативан број у резултату.

Пример: Примените потписани оператор померања удесно са наведеним позицијама 4 ако је к = 256 и к = -256.

Ако је х = 256

256 >> 4

256/24= 16

Ако је х = -256

-256 >> 4

-256/24= -16

У горњем примеру, приметили смо да се после померања оператор 256 претвара у 16, а -256 у -16.

Хајде да направимо Јава програм и применимо леви оператор померања.

СигнедРигхтСхифтОператорЕкампле.јава

 public class SignedRightShiftOperatorExample { public static void main(String args[]) { int x = 50; System.out.println(&apos;x&gt;&gt;2 = &apos; + (x &gt;&gt;2)); } } 

Излаз

 x&gt;&gt;2 = 12 

Потписани оператор левог смена (<<)< strong>

Потписани оператор померања лево (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Такође чува крајњи леви бит (значни бит). Не чува знаковни бит.

конверзија стринга у инт у Јави

Уопште, ако напишемо а< Битни оператор у Јави

Пример 1: Шта ће бити резултат након померања а<<3. the value of a is 20.< strong>

Репрезентација 20 у бинарном облику је = 00010100

Након извођења оператора померања лево, добијамо:

а << 3 = 10100000 (последња три бита су попуњени битови)

а << 3 = 160

Проверимо резултат користећи формулу.

20 << 3

20*23= 20*8 = 160

Пример 2: Какав ће бити резултат након померања а<<2. the value of a is -10.< strong>

стринг.садржи јава

Репрезентација -10 у бинарном облику је = 11110110

а<<2 11011000='<strong' =>-40

Проверимо резултат користећи формулу.

-10 << 3

-10*22= -10*4 = -40

Хајде да направимо Јава програм и применимо потписани оператор померања улево.

СигнедЛефтСхифтОператорЕкампле.јава

 public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println(&apos;x&lt;<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x&lt;<1 24 = < pre> <h3>Unsigned Right Shift Operator (&gt;&gt;&gt;)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>&gt;&gt;&gt;.</strong> Note that the leftmost position after &gt;&gt; depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a&gt;&gt;&gt;b?</strong> </p> <p>a &gt;&gt;&gt; b = 11110000 &gt;&gt;&gt; 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&apos;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(&apos;x&gt;&gt;&gt;2 = &apos; + (x &gt;&gt;&gt;2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x&gt;&gt;&gt;2 = 5 </pre> <hr></1></pre></1>

Излаз

 x&gt;&gt;&gt;2 = 5