JavaRush /Java Blog /Random-TK /Java-da logiki operatorlar

Java-da logiki operatorlar

Toparda çap edildi
Java-da logiki amallar.  Java-da bitwise amallary - 1

Java-da logiki amallar

Logiki amallar Boolean operatorlarynyň kömegi bilen amala aşyrylýar. Tautologiýany bagyşlaň, ýöne edil şu zatlar. Esasy logiki amallar (programmirleme we matematikada) logiki argumentlere (operandlara) ulanylyp bilner we sanlar boýunça arifmetiki amallara meňzeş has çylşyrymly aňlatmalary döretmek üçin hem ulanylyp bilner. Mysal üçin aňlatma:

(a | b) | (c < 100) & !(true) ^ (q == 5)
dört operand bilen çylşyrymly logiki aňlatma: (a | b)nirede аwe büýtgeýän üýtgeýjiler boolean (c < 100) (true) (q == 5) . Öz gezeginde ýönekeý logiki aňlatma (a | b)hem iki operand argumentinden durýar. Logiki operand, dogry ýa-da ýalan, dogry ýa-da ýalan diýip aýdylýan aňlatma . Java dilinde, Boolean operand görnüşi booleanýa-da Boolean görnüşi, mysal üçin:
  • (2 < 1)- logiki operand, onuň bahasy ýalňyş
  • true- gymmaty aç-açan dogry bolan logiki operand
  • boolean a- Boolean a ýaly logiki operand hem bolup biler
  • int a = 2- logiki operand däl , diňe bir üýtgeýän görnüşint
  • String a = "true"logiki operand däl . Bu tekstiň bahasy bolan setir "true".
Java-da aşakdaky logiki amallar bar:
  • Logiki negatiwlik , NOTterslik hem diýilýär. !Java-da, operanddan öň “” nyşany bilen görkezilýär . Bir operanda degişlidir.
  • Mantykly we bu hem ANDbir baglanyşyk. &Ulanylýan iki operanyň arasynda “” nyşany bilen görkezilýär .
  • Logiki ýa-da Java-da , bu hem - OR, bu hem kesiş. Java-da iki operanyň arasynda “” nyşany bilen görkezilýär |.
  • Aýratyn ýa -da , XORberk kesiş. Java-da iki operanyň arasynda “” nyşany bilen görkezilýär ^.
  • Java-da logiki operatorlar şertli ýa-da şertli we - ||ýaly kesgitlenýär .&&
Bellik: matematiki logikada hem deňlik gatnaşyklaryny, başgaça aýdylanda deňlik hasaplaýarlar. Şeýle-de bolsa, Java-da deňlik operatory==logiki operator hasaplanmaýar. Üns beriň! Java-da logiki operatorlar&,|da^degişlidir. Bu ýagdaýda birneme başgaça işleýärler we bitwise (ýa-da bitwise) logiki operatorlar diýilýär. Olar hakda - makalanyň soňuna çenli. Java logiki operatorlarynyň hersiniň gysgaça beýany bolan tablisa seredeliň we aşakda olary has jikme-jik beýan ederis we kod mysallaryny bereris.
Java operatory Ady Görnüşi Gysga düşündiriş Mysal
! Logiki “däl” (negatiw) Unary !x“x däl” diýmekdir. Operand ýalan bolsa hakyky bolýar . Operand dogry bolsa ýalan görkezýär . boolean x = true;
Soň bolsa
// !x == false
& Logiki we ( AND, köpeltmek) Ikilik Iki operanyňam dogry bolsa, hakyky bolýar . a = true;
b = false;
Soň bolsa
a & b == false
| Logiki OR ( OR, goşmaça) Ikilik Operasiýalaryň iň bolmanda biri dogry bolsa , hakyky bolýar . a = true;
b = false;
Soň bolsa
a | b == true
^ Logiki aýratyn ýa-da ( XOR) Ikilik Operandlaryň diňe biri dogry bolsa, hakyky bolýar . Iki operanyňam dogry ýa-da ýalňyş bolsa, ýalan görkezýär . Aslynda, operandlar başga bolsa, hakykata gaýdyp gelýär . a = true;
b = false;
Soň bolsa
a ^ b == true
&& Şertli we (gysga logiki we) Ikilik Edil şonuň ýaly, &ýöne çep tarapdaky operand ýalňyş bolsa &, bu operator ikinji operany barlamazdan ýalan gaýdyp gelýär.
|| Şertli ýa-da (gysga logiki OR) Ikilik Edil şonuň ýaly, |ýöne çep tarapdaky operator dogry bolsa , operator ikinji operany barlamazdan hakyky gaýdyp gelýär.

JavaRush kursynda logiki amallar

Logiki amallardan gutulyp bolmaýar we JavaRush kursynda şertler we maglumat görnüşi bilen birlikde birinji derejelerden peýda bolýar. Programmistler kem-kemden matematiki logika usullaryny ulanmagy öwrenýärler. Logiki gurluşlar bilen has ygtybarly manipulýasiýa etmek üçin belli bir çaltlyk we käbir proseslere düşünmek zerurdyr. Şeýlelik bilen, köp amally gözlegiň ahyrynda bu amallara has jikme-jik we düýbünden başga bir derejede çemeleşilýär, haçanda okuwçylaryň köpüsi sintaksis we gurluşlar bilen gönüden-göni ünsüni çekmeýärler, ýöne meseläniň manysyny öwrenmäge synanyşýarlar.

Java-da logiki amallar.  Java-da bitwise amallary - 2

Logiki negatiw operator!

Bu operator birmeňzeş, ýagny ýekeje Boolean aňlatmasyna ýa-da operandyna degişlidir. Islendik ýalňyşlyk ýaly düşünmek gaty ýönekeý: operator aňlatmanyň manysyny tersine üýtgedýär. Hakykat tablisasy ýa-da ret etmek amalynyň netijeleri:
A bahasy ! a
ýalan dogry
dogry ýalan
Mysal. Logiki negatiw amal
public class Solution {
   public static void main(String[] args) {
       boolean a = true;
       System.out.println(!a); // here our boolean expression reverses its value
       System.out.println(!false); // non-false expression, as you might guess, will be equal to... what?
       System.out.println(!(2 < 5)); // expression (2 < 5) is true, so its negation is false

   }
}
Programmanyň netijesi şeýle bolar:

false
true
false

Logiki we - &, şeýle hem şertli we - &&

Logiki we ýa-da birleşme iki aňlatma üçin ulanylýar we netijesi diňe iki operand dogry bolsa dogry bolar. a.Agny, ýa-da operandlaryň biri ýalan bolsa b, ikinji operatoryň bahasyna garamazdan aňlatma ýalňyşa & b bolar . Hakyky 1 san we ýalňyş 0 diýip göz öňüne getirýän bolsaňyz , operator adaty köpeltmek bilen birmeňzeş işleýär. Şonuň üçin logiki we köplenç “logiki köpeltmek” diýilýär. Theeri gelende aýtsak, bu hakykat operatoryň işini çalt ýatda saklamaga we logiki ýa-da operator bilen bulaşdyrmazlyga kömek edýär . Hakykat tablisasy WE, bu hem operatoryň işiniň netijesidir&&|&
a b a & b
dogry dogry dogry
dogry ýalan ýalan
ýalan dogry ýalan
ýalan ýalan ýalan
Logiki we, bu hem baglanyşyk, mysallar:
public class Solution {
   public static void main(String[] args) {
       boolean a = true;
       boolean b = false;
       boolean c = true;
       System.out.println(a & b); // if we multiply true by false, we will definitely get false
       System.out.println(a & c); // true to true will be true
       System.out.println(false & (2 > 5));
 System.out.println((2 < 5) & false);
 // regardless of the truthfulness of the expression in brackets, in which case we have to be content with false
   }
}
Maksatnamanyň netijesi:

false
true
false
false
Operator &&käwagt “gysga we” diýilýär. Operator bilen logiki operandlar bilen işleşende şol bir netije berýär &. Şeýle-de bolsa, eseriniň özünde tapawut bar. a & bŞeýlelik bilen, () aňlatmasyndaky operandyň aýalan bolsa , operanyň bahasyny barlamagyň manysynyň ýokdugyna göz ýetirdiňiz :b amalyň netijesi hökman ýalan bolar . Şonuň üçin ikinji operanyň bahasyna düýpden zerurlyk ýok bolsa, ony ulanyp, &&programmadaky hasaplamalaryň sanyny azaldýarys. &Mysaldaky ähli operatorlary çalyşsak &&, netije edil şol bir bolar, ýöne programmanyň özi birneme çalt işlär (muny duýmarys, sebäbi mili-mikro hakda gürleşýäris ... gysgaça , wagtyň gaty kiçi birlikleri).

Logiki OR ýa-da operator |, şeýle hem şertli OR ýa-da operator ||

Java-daky OR operatory nyşan bilen görkezilýär |. Iki aňlatma üçin logiki OR ýa-da kesiş ulanylýar we netijesi ýalňyş bolar we diňe iki operand ýalňyş bolsa. Bu ýerde belli bir derejede operatoryňky ýaly suraty synlaýarys &, ýöne tersine. .Agny, iň bolmanda bir operand dogry bolsa, ikinji operatoryň bahasyna garamazdan aňlatmanyň dogrya | b bolmagy kepillendirilýär . Logiki köpeltmek ýaly hereket edýän bolsa , dogry ýa- da ýalňyşdygyny göz öňüne getirseňiz, ýa-da logiki goşmaçadyr, logiki goşmaçanyň adaty goşmaçadan tapawutly işleýändigini ýadyňyzdan çykarmaň. Bu ýagdaýda 1 + 1 2 bilen däl-de, 1-e deňdir (2-nji san bu ulgamda ýok). Käwagt kesiş maksimum 0 we 1 diýip düşünilýär we bu ýagdaýda, iň bolmanda bir operand 1 ( dogry ) deň bolsa, takyk bolarys . ORA-da operatoryň netijesi hökmünde tanalýan hakykat tablisasy : &|
a b a | b
dogry dogry dogry
dogry ýalan dogry
ýalan dogry dogry
ýalan ýalan ýalan
Logiki OR ýa-da kesiş diýlip hem atlandyrylýar, mysal:
public class Solution {
   public static void main(String[] args) {
       boolean a = true;
       boolean b = false;
       boolean c = true;
       System.out.println(!a | b); // Compose the use of two logical operators: a == true, so !a, as we already know, is false.
       System.out.println(a | c);
       System.out.println((2 < 5) | false); // expression (2 < 5) is true, which means that for any second operand we get a true result
       System.out.println((2 > 5) | true);

   }
}
Netije:

false
true
true
true
Şertli ýa-da operatory ulansak - ||ýerine |, edil şol bir netijäni alarys, ýöne şertli we bolşy ýaly , ykdysady taýdan hereket eder: eger hakykata&& deň bolan ilkinji operany “gaçsak” , gymmaty ikinji operand barlanmady, ýöne derrew netije dogry .

XOR Java - logiki aýratyn OR ýa-da operator ^

XOR, modul 2 goşma, logiki XOR, logiki aýyrmak, berk kesiş, birneme doldurmak ... operatoryň ^Boolean algebrasynda köp atlary bar. Bu operatory iki operanda ulanmagyň netijesi, eger operandlar başga bolsa we operandlar birmeňzeş bolsa ýalan bolsa dogry bolar. Şonuň üçin ony nollary ( ýalan ) we ( dogry ) aýyrmak bilen deňeşdirmek amatly . Operatoryň netijesi hökmünde hem bilinýän hakykat tablisasy : XOR^
Boolean a Boolean b a ^ b
dogry dogry ýalan
dogry ýalan dogry
ýalan dogry dogry
ýalan ýalan ýalan
Mysal:
public class Solution {
   public static void main(String[] args) {
       boolean a = true;
       boolean b = false;
       boolean c = true;
       System.out.println(!a ^ b); // Compose the use of two logical operators: a == true, so !a, as we already know, is false.
       System.out.println(a ^ c);
       System.out.println((2 < 5) ^ false);
       System.out.println((2 > 5) ^ true);
   }
}
Netije:

false
false
true
true

Logiki amallaryň ileri tutulmagy

Matematikada bolşy ýaly, programmirlemekde hem operatorlar şol bir aňlatmada peýda bolanda belli bir ýerine ýetiriş tertibine eýe. Bitewi operatorlar ikiliklerden has köp, goşmaçadan köpeltmek (hatda logiki) hem artykmaçlyklara eýe. Logiki operatorlary sanawda has ýokary goýduk, olaryň ähmiýeti şonça ýokary:
  1. !
  2. &
  3. ^
  4. |
  5. &&
  6. ||
Mysallara seredeliň. Baglanyşyk we kesiş ( &we |) dürli ähmiýeti bar:
public class Solution {
   public static void main(String[] args) {
       boolean a = true, b = true, c = false;
       System.out.println(a | b & c);
}
Çepden saga, ýagny ilki operatory ulanmak |, soň bolsa - bahany ýalňyş& alarys . Inöne aslynda, bu programmany işletseňiz, çykyşyň dogry boljakdygyna göz ýetirersiňiz , sebäbi logiki we operator logiki OR operatoryndan has ileri tutar . Bulaşyklygyň öňüni almak üçin, köpeltmek ýaly özüni alyp barşyň we goşma ýaly özüni alyp barşyňy ýatdan çykarmaly däl . Üstünlik tertibini üýtgedip bilersiňiz. Mekdep matematikasyndaky ýaly diňe ýaýlary ulanyň. Mysal kodumyzy azajyk üýtgedeliň: &|&|
public class Solution {
   public static void main(String[] args) {
       boolean a = true, b = true, c = false;
       System.out.println((a|b)&c);
}
Näme? Ilki bilen ýaýyň içinde logiki goşmaçany, soň bolsa köpeltmegi ulanýarys. Netije ýalan bolar .

Çylşyrymly logiki aňlatmalar

Elbetde, Boolean aňlatmalaryny we operatorlaryny birleşdirip bileris. Makalanyň başyndan gelýän sözleri ýada salalyň:
(a | b) | (c < 100) & !(true) ^ (q == 5)
Indi beýle gorkunç görünmeýär. Geliň , ozal, we abahalaryny bkesgitläp , bahasyny görkezýän programma ýazalyň . Çylşyrymly Boolean aňlatmasynyň bahasyny hasaplamagyň mysaly сq
public class Solution {
   public static void main(String[] args) {
       boolean a = true;
       boolean b = false;
       int c = 25;
       int q = 2;
       System.out.println((a|b) | (c < 100) & !(true)^(q == 5));
   }
}
Bellik:üýtgeýjimiz görnüşlidir , ýöne bu Boolean aňlatmasy we ýalňyş bilen deňdir , sebäbi ýokarda 2-nji san bilen başladyk, üýtgeýjide-de edil şonuň qýaly . Bu san 25-e deňdir, ýöne (c <100) hakykata deň bolan Boolean aňlatmasydyr . Bu programmanyň netijesi: intq == 5qc

true
Çylşyrymly Boolean aňlatmalary gaty çylşyrymly we şahaly şertleri barlamak üçin ulanylyp bilner, ýöne olary aşa ulanmaly däl: kody okamagy kynlaşdyrýar.

Bitwise (bitwise) operatorlar

Makalanyň başynda operatorlaryň we &Java bitewi görnüşlerine degişlilikde ulanyp boljakdygyny belledik. Bu ýagdaýda olar birneme operatorlar. Olara “bitwise” hem diýilýär, sebäbi bir san biraz bolýar we bu amallar ýörite bitler bilen işleýär. Elbetde, logiki operatorlardan birneme üýtgeşik işleýärler we takyk düşünmek üçin ikilik san ulgamynyň nämedigini bilmeli. Bu hakda hiç zat bilmeseňiz ýa-da düýbünden ýatdan çykaran bolsaňyz, ilki bilen Java makalasyny: bitleri we baýtlary okamagyňyzy maslahat berýäris we ikilik san ulgamynda diňe iki san - 0 we 1 we ähli maglumatlaryň bardygyny ýatladýarys. kompýuterde şertli nollary we takyklary ulanmak bilen takyk görkezilýär. Biz öwrenişen sanlaryň islendigi (onluk; olar üçin 0-dan 9-a çenli 10 dürli san bar, olar bilen islendik san ýazýarys) ikilik san ulgamynda görkezilip bilner. San ulgam bazasyny (2) ulanyp, yzygiderli bölünişi ulanyp, onluk belgini ikile öwrüp bilersiňiz. Her ädimde bölünişigiň galyndylary ters tertipde ýazylan, bize islenýän ikilik belgisini berer. Bu ýerde, mysal üçin, 103-nji onluk belginiň ikilik şekiline öwrülmegi: |^Java-da logiki amallar.  Java-da bitwise amallary - 3

JavaRush kursynda ikilik san ulgamy

JavaRush kursynda MultiThreading gözlegini (10-njy dereje, 1-nji leksiýa) öwrenýänlerinde ikilik san ulgamy barada gürleşýärler; leksiýadan soň birleşdirmek üçin birnäçe meseleler bar. Şeýle-de bolsa, bu mowzuk asla kyn däl, hatda entek bu kursy öwrenmedik bolsaňyzam, düşünersiňiz.

Mundan başga-da &, Java |hem ^bitwise operatorlaryny ulanýar:
  • ~ tersine ýatyrmak operatory
  • >>birneme saga süýşüriň
  • >>>gol çekmedik bitwise sag smena
  • <<çepe süýşmek
Täze başlanlar üçin birneme akylly operatorlar gaty bulaşyk we emeli görünýär. Bilim meselelerini çözmekden başga köplenç özlerine näme gerekdigine düşünmeýärler. Aslynda, iň azyndan netijeli bölünmegi we köpeltmegi guramak üçin ulanylyp bilner, hünärmenler olary kodlamak / kodlamak, şifrlemek we tötänleýin sanlary döretmek üçin ulanýarlar.

Bitwise operatorlar &, | we ^

Bu operatorlaryň işleýşiniň bir mysalyna seredeliň. Iki sany bitewi san bar diýeliň:
int a = 25;
int b = 112; 
Olara üç amal ulanmaly &we netijäni ekranda görkezmeli |. ^Ine, programma kody:
public class Solution {
   public static void main(String[] args) {

       int a = 25;
       int b = 112;

       int res1 = a & b;
       int res2 = a | b;
       int res3 = a ^ b;

       System.out.println("a & b = " + res1);
       System.out.println("a | b = " + res2);
       System.out.println("a ^ b = " + res3);

   }
}
Maksatnamanyň netijesi:

a & b = 16
a | b = 121
a ^ b = 105
Nämäniň bolup geçýändigine düşünmeseňiz, netije gaty syrly görünýär. Aslynda hemme zat görünýäninden has ýönekeý. Bitwise operatorlar operand sanlaryny ikilik görnüşinde “görýärler”. &Soň bolsa logiki operatorlary ýa |-da ^iki sanyň degişli sanlaryna (bitlerine) ulanýarlar . Şeýlelik bilen, &25 belginiň ikili şekillendirişiniň iň soňky bölegi üçin logiki taýdan 112 belginiň ikilik şekillendirişiniň iň soňky bölegine, ahyrky nokady bilen ahyrky nokady we ş.m. goşýar: Java-da logiki amallar.  Java-da bitwise amallary - 4Şol bir logikany yzarlap bolýar we |. ^_ Java-da logiki amallar.  Java-da bitwise amallary - 5

Bit çepe ýa-da saga

Java-da birnäçe bit çalşyk operatorlary bar. Iň köp ulanylýan operatorlar <<we >>. Belgini gorap saklamak bilen bir sanyň ikili şekilini degişlilikde çepe ýa-da saga geçirýärler we belgini gorap saklamak bilen sag tarapa üýtgän ýagdaýynda (belligi goramagyň aşakda nämäni aňladýandygyny düşündireris). Başga bir çalşyk operatory bar >>>. Edil şol bir zady edýär, ýöne >>alamaty halas etmeýär. Şeýlelikde, geliň, olaryň işine mysal hökmünde seredeliň. int a = 13 a << 1a sanyň ikilik şekillendirişiniň ähli bitlerini çepe 1 bit üýtgedýär. Simplönekeýleşdirmek üçin, 13 belgisini ikilik görnüşinde 0000 1101 hökmünde görkezeliň. Aslynda bu san şuňa meňzeýär: 00000000 00000000 00000000 00001101, sebäbi Java intsanlar üçin 4 baýt ýa-da 32 bit bölýär. Şeýle-de bolsa, bu mysalda rol oýnamaýar, şonuň üçin bu mysalda öz sanymyzy bir baýt diýip hasaplarys. Java-da logiki amallar.  Java-da bitwise amallary - 6Sag tarapdaky boş ýerler nol bilen doldurylýar. Bu amalyň netijesinde 26-njy belgini alarys. a << 2Sanyň ikilik şekillendirişiniň ähli bitlerini açepe 2 bit bilen süýşürýär we sagda boş galan iki bit nol bilen doldurylýar. Netijede, 52 belgisini alarys. a << 3Netije 104 bolar ... Nusga üns beriň? N pozisiýalardan çep tarapa süýşmek, asanlary an güýjüne 2 köpeltmek ýaly işleýär. Bu negatiw sanlara-da degişlidir. Bu -13 << 3-104 netijesini berer. a >> nn sany pozisiýanyň ikili şekillendirişini saga geçirýär. Mysal üçin, 13 >> 1 1101 belgini 0110 belgä, ýagny 6-a öwürýär we 13 >> 2netijesi 3 bolar., Agny, bu ýerde sanlary n-iň güýjüne 2-ä bölýäris, bu ýerde n çalşyklaryň sanydyr. sagda, ýöne bir duýduryş bilen: san geň bolsa, bu amal wagtynda sanyň soňky bölegini täzeden düzýän ýaly. Negativeöne negatiwler bilen ýagdaý birneme üýtgeşik. Diýeliň, amaly ýerine ýetirmegi haýyş etseňiz, programmanyň näme öndürjekdigini barlamaga synanyşyň -13 >> 1. Siziň pikir edişiňiz ýaly -6 däl -7 belgisini görersiňiz. Bu, negatiw sanlaryň Java we beýleki programmirleme dillerinde saklanmagy sebäpli bolup geçýär. Goşmaça kod diýilýän ýerde saklanýar. Bu ýagdaýda belgä iň möhüm san (çep tarapdaky) berilýär. Negativearamaz san bolan ýagdaýynda iň möhüm san 1.

Goşmaça kod

Geliň, sana seredeliň int a = 13. Programmada buýrugy ulanyp, ikili wekilçiligini konsola çap etseňiz System.out.println(Integer.toBinaryString(a));, 1101 alarys. Aslynda bu stenografik bellik, sebäbi görnüş belgisi intýatda 4 baýt alýar, şonuň üçin kompýuter ony has köp “görýär” ýaly:

00000000 00000000 00000000 00001101
Iň möhüm san nol, ýagny polo positiveitel san bar diýmekdir. Goşmaça koda öwürmek üçin:
  1. -13 belgisini “göni kod” diýýäris. Munuň üçin sanyň iň möhüm belgisini 1-e üýtgediň.
    Hereketiň netijesi:

    
    10000000 0000000 0000000 00001101
  2. Ondan soň, bellik bitinden başga ähli bitleri tersine (0-dan 1-e, 1-den 0-a üýtgedýäris). Aslynda, eýýäm üýtgedipdik.
    Hereketiň netijesi:

    
    11111111 11111111 11111111 11110010

    (hawa, 1-nji we 2-nji ädimleri birleşdirip bolar, ýöne bu hakda pikir etmek has gowudyr)

  3. Alnan sana 1 goşuň.
    Hereketiň netijesi:

    
    11111111 11111111 11111111 11110011
Alnan ikilik belgisi -13 bolup, ikisiniň goşmaça kody bilen ýazylýar we bit smenasy (we beýleki amallar) ýörite ulanylar. Diňe amal amallarynyň logikasyndaky tapawut göze ilmeýär. Çep tarapdaky şol bir üýtgeşiklik üçin tapawut göze ilmeýär diýeliň, otrisatel sanlar bilen pozitiw sanlar ýaly işläp bileris. Indi saga geçeliň -13 >> 1. Operatorymyz >>bu belgini saklaýandygy sebäpli, bu amalda çep tarapdaky boşluklaryň hemmesi nol bilen däl-de, eýsem doldurylýar. Şeýlelik bilen, belgini üýtgetmek

11111111 11111111 11111111 11110011
sagdan bir bit, aşakdaky bitleriň yzygiderliligine getirýär:

11111111 11111111 11111111 11111001
Bu belgini göni koda öwürsek (ýagny, ilki 1-ni aýyryň, soň birinjiden başga ähli bitleri tersine) alsak:

10000000 00000000 00000000 00000111
ýa -7. Belgi gorap saklaýan sag çalşyk operatoryna düşünenimizden soň, onuň operatordan näderejede tapawudy belli bolar >>>. a >>> n- bu amal gol çekilmedik smena, ýagny sanyň ikilik şekilini an bit bilen saga geçirýär, ýöne çepde boşadylan n bitleri operator ýaly däl-de, >>nol bilen doldurýar. Geliň, operasiýa edeliň -13 >>> 1. Bizde eýýäm -13iki sany goşundy bar:

11111111 11111111 11111111 11110011
1 bit bilen saga geçip, mugt biti nol bilen dolduryp, aşakdaky belgini alarys:

01111111 11111111 11111111 11111001
Onluk bellikde san berýän zat 2147483641.

Bitwise negatiw operator ~

Bu bitewi operator gaty ýönekeý işleýär: bitewi bitewi şekillendirişiň her bölegini tersine. Geliň, belgini alalyň -13:

11111111 11111111 11111111 11110011
Birneme tersine amal etmek ~13her bitiň bahasyny tersine öwürer. Netijede alýarys:

00000000 00000000 00000000 00001100
Ora-da 12onluk görnüşde.

Gysgaça netijeler

  • Loghli logiki operatorlar Boolean aňlatmalaryna, ýagny dogry ýa-da ýalan diýip aýdylýanlara degişlidir .
  • Operatorlar ýa-da &sanlara ulanylsa, biz indi logiki amallar hakda däl-de, bitarap amallar hakda gürleşýäris. .Agny, iki san ikilik ulgamyna öwrülýär we logiki goşmak, köpeltmek ýa-da aýyrmak amallary bu sanlara az-kem ulanylýar.|^
  • Matematiki logikada operatorlar birleşmäge we kesilmegine laýyk gelýär &.|
  • Logiki we 1 ( dogry ) we 0 ( ýalan ) köpeltmäge meňzeýär .
  • Logiki ýa-da 1 ( dogry ) we 0 ( ýalan ) arasynda iň köp tapylmagyna meňzeýär .
  • A bitewi bitewi ýalňyşlyk üçin operator ulanylýar ~a.
  • Boolean aňlatmasyny logiki taýdan ret etmek üçin operatory ulanyň !a.
  • Ativearamaz sanlar iki sany goşmaça kodda saklanýar we gaýtadan işlenýär.
  • Saga birneme süýşmek >>() belgisini saklap biler ýa-da saklap bilmez >>>.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION