JavaRush /Java Blog /Random-ID /Operator Logika di Java

Operator Logika di Java

Dipublikasikan di grup Random-ID
Operasi logika di Java.  Operasi bitwise di Java - 1

Operasi Logis di Java

Operasi logika dilakukan menggunakan operator Boolean. Maafkan tautologinya, tapi memang begitulah adanya. Operasi logika dasar (dalam pemrograman dan matematika) dapat diterapkan pada argumen logika (operan), dan juga dapat digunakan untuk membentuk ekspresi yang lebih kompleks, mirip dengan operasi aritmatika pada bilangan. Misalnya ungkapan:

(a | b) | (c < 100) & !(true) ^ (q == 5)
adalah ekspresi logika kompleks dengan empat operan: (a | b), di mana аdan bmerupakan variabel tipe boolean (c < 100) (true) (q == 5) . Pada gilirannya, ekspresi logika sederhana (a | b)juga terdiri dari dua argumen operan. Operan logika adalah ekspresi yang dapat dikatakan benar atau salah, benar atau salah . Dalam bahasa Java, operan Boolean merupakan ekspresi bertipe booleanatau Boolean, misalnya:
  • (2 < 1)— operan logis, nilainya salah
  • true- operan logis yang nilainya jelas benar
  • boolean a- juga bisa menjadi operan logis, seperti Boolean a
  • int a = 2- bukan operan logis , ini hanya tipe variabelint
  • String a = "true"juga bukan operan logis . Ini adalah string yang nilai teksnya adalah "true".
Operasi logis berikut tersedia di Java:
  • Negasi logis , juga dikenal NOTsebagai inversi. Di Java, ini ditandai dengan !simbol “ ” sebelum operan. Berlaku untuk satu operan.
  • Logis dan , ini juga merupakan ANDkonjungsi. Ditunjukkan dengan &simbol “ ” di antara dua operan yang diterapkan.
  • Logikanya atau di Jawa juga - OR, itu juga disjungsi. Di Java, ditandai dengan simbol “ |” di antara dua operan.
  • XORDisjungsi eksklusif atau , , tegas. Di Java, ditandai dengan simbol “ ^” di antara dua operan.
  • Di Java, operator logika mencakup kondisional atau , dinotasikan sebagai ||, serta kondisional dan - &&.
Catatan: juga dalam logika matematika mereka mempertimbangkan hubungan kesetaraan, dengan kata lain kesetaraan. Namun, di Java, operator kesetaraan==tidak dianggap sebagai operator logika. Perhatian! Di Java, operator logika&,|dan^juga berlaku untuk bilangan bulat. Dalam hal ini, cara kerjanya sedikit berbeda dan disebut operator logika bitwise (atau bitwise). Tentang mereka - menjelang akhir artikel. Mari kita lihat tabel dengan deskripsi singkat dari masing-masing operator logika Java, dan di bawah ini kami akan menjelaskannya lebih detail dan memberikan contoh kode.
operator jawa Nama Jenis Deskripsi Singkat Contoh
! Logis “tidak” (negasi) Unary !xberarti “bukan x”. Mengembalikan nilai benar jika operannya salah . Mengembalikan false jika operannya benar . boolean x = true;
Kemudian
// !x == false
& Logika AND ( AND, perkalian) Biner Mengembalikan nilai benar jika kedua operan bernilai benar . a = true;
b = false;
Kemudian
a & b == false
| Logis OR ( OR, penjumlahan) Biner Mengembalikan nilai benar jika setidaknya salah satu operan bernilai benar . a = true;
b = false;
Kemudian
a | b == true
^ Eksklusif logis OR ( XOR) Biner Mengembalikan nilai benar jika hanya satu operan yang bernilai benar . Mengembalikan false jika kedua operan bernilai true atau false . Pada dasarnya, ini mengembalikan nilai true jika operannya berbeda. a = true;
b = false;
Kemudian
a ^ b == true
&& Bersyarat AND (logis pendek AND) Biner Sama seperti , &tetapi jika operan di sebelah kiri &adalah false , operator ini mengembalikan false tanpa memeriksa operan kedua.
|| OR bersyarat (logis pendek OR) Biner Sama seperti , |tetapi jika operator di sebelah kiri adalah true , operator mengembalikan nilai true tanpa memeriksa operan kedua.

Operasi logis dalam kursus JavaRush

Tidak ada jalan keluar dari operasi logis, dan dalam kursus JavaRush operasi tersebut muncul dari tingkat pertama, bersama dengan kondisi dan tipe data boolean. Pemrogram secara bertahap belajar menggunakan metode logika matematika. Untuk manipulasi yang lebih percaya diri dengan konstruksi logis, diperlukan ketangkasan dan pemahaman tertentu tentang proses tertentu. Jadi operasi ini didekati secara lebih rinci dan pada tingkat yang sama sekali berbeda di akhir pencarian Multithreading, ketika sebagian besar siswa tidak lagi terlalu terganggu secara langsung oleh sintaksis dan konstruksi, tetapi mencoba mempelajari esensi tugas.

Operasi logika di Java.  Operasi bitwise di Java - 2

Operator negasi logis!

Operator ini bersifat unary, artinya berlaku untuk satu ekspresi atau operan Boolean. Sangat mudah untuk memahaminya, seperti negasi lainnya: operator hanya mengubah arti ekspresi menjadi kebalikannya. Tabel kebenaran atau hasil melakukan operasi negasi:
Nilai a !A
PALSU BENAR
BENAR PALSU
Contoh. Operasi negasi logis
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

   }
}
Output dari program ini adalah sebagai berikut:

false
true
false

Logis AND - &, serta kondisional AND - &&

Logika AND atau konjungsi diterapkan pada dua ekspresi, dan hasilnya akan benar hanya jika kedua operannya benar. Artinya, jika salah satu operan aor badalah false , maka ekspresi a & bakan menjadi false terlepas dari nilai operator kedua. Jika dibayangkan benar adalah angka 1 dan salah adalah 0, maka cara &kerjanya sama persis dengan perkalian biasa. Oleh karena itu, logika AND sering disebut dengan “perkalian logika”. Dan, omong-omong, fakta ini membantu mengingat pengoperasian operator dengan cepat &dan tidak membingungkannya dengan operator logika atau |. Tabel kebenaran AND, juga merupakan hasil kerja operator&
A B a&b
BENAR BENAR BENAR
BENAR PALSU PALSU
PALSU BENAR PALSU
PALSU PALSU PALSU
Logis AND, juga merupakan konjungsi, contoh:
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
   }
}
Hasil dari program ini:

false
true
false
false
Operator &&kadang-kadang disebut “pendek DAN”. Ini menghasilkan hasil yang sama ketika bekerja dengan operan logis sebagai operator &. Namun ada perbedaan pada karyanya sendiri. Jadi, Anda telah memperhatikan bahwa jika a & boperan dalam ekspresi ( ) aadalah false , maka tidak masuk akal untuk memeriksa nilai operan b: hasil operasinya pasti false . Jadi jika pada dasarnya kita tidak membutuhkan nilai operan kedua, dengan menggunakannya &&kita mengurangi jumlah perhitungan dalam program. Jika kita mengganti semua operator dalam contoh &dengan &&, hasilnya akan sama persis, tetapi program itu sendiri akan berjalan sedikit lebih cepat (walaupun kita tidak akan menyadarinya, karena kita berbicara tentang mili-mikro... singkatnya , satuan waktu yang sangat kecil).

Logis OR adalah operator |, begitu pula OR bersyarat adalah operator ||

Operator OR pada Java dilambangkan dengan simbol |. Logika OR atau disjungsi diterapkan pada dua ekspresi, dan hasilnya akan salah jika dan hanya jika kedua operannya salah. Di sini kita sampai batas tertentu mengamati gambaran yang sama seperti dalam kasus operator &, tetapi justru sebaliknya. Artinya, jika setidaknya satu operan bernilai true , maka ekspresi a | bdijamin benar berapa pun nilai operator kedua. Jika &berperilaku seperti perkalian logis, maka OR adalah penjumlahan logis, jika Anda membayangkan bahwa benar adalah 1 dan salah adalah 0. Ingatlah bahwa cara kerja penjumlahan logis berbeda dari penjumlahan normal. 1 + 1 dalam hal ini tidak sama dengan 2, tetapi dengan 1 (angka 2 tidak ada dalam sistem ini). Terkadang disjungsi dipahami sebagai maksimum 0 dan 1, dan dalam hal ini, jika setidaknya satu operan sama dengan 1 ( true ), kita mendapatkan true . Tabel kebenaran OR, dikenal juga sebagai hasil operator |:
A B sebuah | B
BENAR BENAR BENAR
BENAR PALSU BENAR
PALSU BENAR BENAR
PALSU PALSU PALSU
Logika OR disebut juga disjungsi, contoh:
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);

   }
}
Hasil:

false
true
true
true
Jika kita menggunakan operator bersyarat OR - ||alih-alih |, kita akan mendapatkan hasil yang persis sama, tetapi, seperti dalam kasus bersyarat AND &&, ia akan bertindak secara ekonomis: jika kita "menemukan" operan pertama yang sama dengan true , nilai dari operan kedua tidak dicentang, tetapi langsung hasilnya benar .

XOR Java - logika eksklusif OR - operator ^

XOR, penjumlahan modulo 2, XOR logis, pengurangan logis, disjungsi ketat, komplemen bitwise... operator ^memiliki banyak nama dalam aljabar Boolean. Hasil penerapan operator ini pada dua operan akan bernilai true jika operandnya berbeda dan false jika operandnya sama. Oleh karena itu, akan lebih mudah untuk membandingkannya dengan mengurangkan angka nol ( false ) dan satu ( true ). Tabel kebenaran XOR, juga dikenal sebagai hasil operator ^:
Boolean a Boolean b a^b
BENAR BENAR PALSU
BENAR PALSU BENAR
PALSU BENAR BENAR
PALSU PALSU PALSU
Contoh:
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);
   }
}
Hasil:

false
false
true
true

Prioritas operasi logis

Sama seperti dalam matematika, dalam pemrograman operator memiliki urutan eksekusi tertentu ketika muncul dalam ekspresi yang sama. Operator unary memiliki keunggulan dibandingkan operator biner, dan perkalian (bahkan logika) dibandingkan penjumlahan. Kami memberi peringkat operator logika lebih tinggi dalam daftar, semakin tinggi prioritasnya:
  1. !
  2. &
  3. ^
  4. |
  5. &&
  6. ||
Mari kita lihat contohnya. Konjungsi dan disjungsi ( &dan |) mempunyai prioritas yang berbeda:
public class Solution {
   public static void main(String[] args) {
       boolean a = true, b = true, c = false;
       System.out.println(a | b & c);
}
Jika kita melanjutkan dari kiri ke kanan, yaitu menerapkan operator terlebih dahulu |lalu - &, kita akan mendapatkan nilai false . Namun nyatanya, jika Anda menjalankan program ini, Anda akan yakin bahwa outputnya akan benar , karena operator logika AND &akan memiliki prioritas lebih tinggi daripada operator logika OR |. Untuk menghindari kebingungan, Anda perlu mengingat apa yang &berperilaku seperti perkalian dan |apa yang berperilaku seperti penjumlahan. Anda dapat mengubah urutan prioritas. Gunakan saja tanda kurung, seperti pada matematika sekolah. Mari kita ubah sedikit kode contoh kita:
public class Solution {
   public static void main(String[] args) {
       boolean a = true, b = true, c = false;
       System.out.println((a|b)&c);
}
Ada apa? Pertama kita menggunakan penjumlahan logika dalam tanda kurung, lalu perkalian. Hasilnya salah .

Ekspresi logis yang kompleks

Tentu saja kita dapat menggabungkan ekspresi dan operator Boolean. Mari kita ingat ungkapan dari awal artikel:
(a | b) | (c < 100) & !(true) ^ (q == 5)
Sekarang tidak terlihat terlalu menakutkan. Mari kita menulis sebuah program yang menampilkan nilainya, setelah sebelumnya menentukan nilai a, b, сdan q. Contoh penghitungan nilai ekspresi Boolean kompleks
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));
   }
}
Catatan:Variabel qkita bertipe int, tetapi q == 5ini adalah ekspresi Boolean, dan sama dengan false , karena di atas kita inisialisasi dengan qangka 2. Begitu pula dengan variabel c. Angka ini sama dengan 25, tetapi (c < 100) merupakan ekspresi Boolean yang sama dengan true . Hasil dari program ini:

true
Ekspresi Boolean kompleks dapat digunakan untuk menguji kondisi yang sangat kompleks dan bercabang, namun ekspresi tersebut tidak boleh digunakan secara berlebihan: ekspresi tersebut membuat kode sulit dibaca.

Operator bit-bijaksana (bit-bijaksana).

Di awal artikel, kami menyebutkan bahwa operator &, |dan ^dapat digunakan untuk tipe integer Java. Dalam hal ini mereka adalah operator bitwise. Mereka juga disebut bitwise, karena satu digit adalah satu bit, dan operasi ini bekerja secara khusus dengan bit. Tentu saja, cara kerjanya agak berbeda dengan operator logika, dan untuk memahami cara kerjanya, Anda perlu mengetahui apa itu sistem bilangan biner. Jika Anda tidak tahu apa-apa tentangnya atau benar-benar lupa, kami sarankan Anda membaca artikel Java: bits dan bytes terlebih dahulu , dan ingatkan semua orang bahwa dalam sistem bilangan biner hanya ada dua digit - 0 dan 1, dan semua data di komputer direpresentasikan secara tepat dengan menggunakan nol dan satu bersyarat. Angka apa pun yang biasa kita gunakan (desimal; bagi mereka ada 10 digit berbeda dari 0 hingga 9, yang dapat kita gunakan untuk menulis angka apa pun) dapat direpresentasikan dalam sistem bilangan biner. Anda dapat mengubah bilangan desimal ke biner menggunakan pembagian berurutan menjadi kolom menggunakan basis sistem bilangan (2). Sisa pembagian pada setiap langkah, ditulis dalam urutan terbalik, akan menghasilkan bilangan biner yang diinginkan. Di sini, misalnya, konversi angka desimal 103 menjadi representasi biner: Operasi logika di Java.  Operasi bitwise di Java - 3

Sistem bilangan biner pada kursus JavaRush

Pada kursus JavaRush, mereka berbicara tentang sistem bilangan biner sambil mempelajari pencarian MultiThreading (level 10, kuliah 1), setelah kuliah ada beberapa tugas untuk konsolidasi. Namun, topik ini sama sekali tidak sulit, dan meskipun Anda belum mempelajarinya sejauh itu, kemungkinan besar Anda akan mengetahuinya.

Selain &, |dan ^Java juga menggunakan operator bitwise:
  • ~ operator negasi bitwise
  • >>pergeseran bitwise ke kanan
  • >>>pergeseran kanan bitwise yang tidak ditandatangani
  • <<pergeseran bitwise ke kiri
Bagi pemula, operator bitwise tampak sangat membingungkan dan dibuat-buat. Mereka seringkali tidak mengerti untuk apa mereka dibutuhkan, kecuali untuk memecahkan masalah pendidikan. Faktanya, mereka dapat digunakan minimal untuk mengatur pembagian dan perkalian yang efisien, dan para profesional menggunakannya untuk pengkodean/dekode, enkripsi, dan menghasilkan angka acak.

Operator bitwise &, | dan ^

Mari kita lihat contoh cara kerja operator ini. Misalkan kita mempunyai dua bilangan bulat:
int a = 25;
int b = 112; 
Kita perlu menerapkan tiga operasi pada operasi tersebut &, |dan ^menampilkan hasilnya di layar. Berikut kode programnya:
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);

   }
}
Hasil dari program ini adalah sebagai berikut:

a & b = 16
a | b = 121
a ^ b = 105
Jika Anda tidak memahami apa yang terjadi, hasilnya terlihat sangat-sangat misterius. Faktanya, semuanya lebih sederhana dari yang terlihat. Operator bitwise “melihat” nomor operan dalam bentuk binernya. Dan kemudian mereka menerapkan operator logika &, |atau ^ke digit (bit) yang sesuai dari kedua angka. Jadi, untuk &bit terakhir dari representasi biner dari angka 25 secara logis dijumlahkan dengan bit terakhir dari representasi biner dari angka 112, bit kedua dari belakang dengan yang kedua dari belakang, dan seterusnya: Operasi logika di Java.  Operasi bitwise di Java - 4Logika yang sama dapat ditelusuri dalam kasus |dan ^. Operasi logika di Java.  Operasi bitwise di Java - 5

Sedikit bergeser ke kiri atau ke kanan

Ada beberapa operator pergeseran bit di Java. Operator yang paling umum digunakan <<adalah dan >>. Mereka menggeser representasi biner suatu bilangan masing-masing ke kiri atau ke kanan, dan jika terjadi pergeseran ke kanan, sambil mempertahankan tandanya (kami akan menjelaskan apa arti mempertahankan tanda di bawah). Ada lagi operator shift kanan >>>. Ia melakukan hal yang sama tetapi >>tidak menyimpan tandanya. Jadi, mari kita lihat pekerjaan mereka menggunakan sebuah contoh. int a = 13 a << 1menggeser semua bit representasi biner bilangan a ke kiri sebanyak 1 bit. Untuk mempermudah, bayangkan angka 13 dalam biner sebagai 0000 1101. Faktanya, angka ini terlihat seperti ini: 00000000 00000000 00000000 00001101, karena Java intmengalokasikan 4 byte atau 32 bit untuk angka. Namun, hal ini tidak berperan dalam contoh, jadi dalam contoh ini kita akan menganggap angka kita sebagai satu byte. Operasi logika di Java.  Operasi bitwise di Java - 6Bit yang dikosongkan di sebelah kanan diisi dengan angka nol. Sebagai hasil dari operasi ini, kita mendapatkan angka 26. a << 2Ini menggeser semua bit representasi biner dari angka tersebut ake kiri sebanyak 2 bit, dan dua bit yang dikosongkan di sebelah kanan diisi dengan nol. Hasilnya kita akan mendapatkan angka 52. a << 3Hasilnya adalah 104... Perhatikan polanya? Pergeseran sedikit ake kiri sebanyak n posisi berfungsi seperti mengalikan angka adengan 2 pangkat n. Hal yang sama berlaku untuk bilangan negatif. Ini -13 << 3akan memberikan hasil -104. a >> nmenggeser representasi biner dari sejumlah n posisi ke kanan. Misal, 13 >> 1 Ubahlah bilangan 1101 menjadi bilangan 0110 yaitu 6. Dan 13 >> 2hasilnya adalah 3. Maksudnya disini kita membagi bilangan tersebut dengan 2 pangkat n, dimana n adalah banyaknya pergeseran ke kanan, tetapi dengan satu peringatan: jika angkanya ganjil, selama operasi ini kita sepertinya menyetel ulang bit terakhir angka tersebut. Tetapi dengan hal-hal negatif, situasinya agak berbeda. Katakanlah, coba periksa program apa yang akan dihasilkan jika Anda memintanya melakukan suatu operasi -13 >> 1. Anda akan melihat angka -7, bukan -6, seperti yang Anda bayangkan. Hal ini terjadi karena cara bilangan negatif disimpan di Java dan bahasa pemrograman lainnya. Mereka disimpan dalam apa yang disebut kode pelengkap. Dalam hal ini, angka paling penting (di sebelah kiri) diberikan di bawah tanda. Untuk bilangan negatif, angka paling penting adalah 1.

Kode tambahan

Mari kita pertimbangkan nomornya int a = 13. Jika dalam program Anda mencetak representasi binernya ke konsol menggunakan perintah System.out.println(Integer.toBinaryString(a));, maka kita akan mendapatkan 1101. Sebenarnya, ini adalah notasi singkat, karena nomor jenis intmemakan 4 byte dalam memori, sehingga komputer lebih “melihatnya” seperti ini:

00000000 00000000 00000000 00001101
Digit paling signifikan adalah nol, artinya kita mempunyai bilangan positif. Untuk mengonversi ke kode tambahan:
  1. Kami menulis angka -13 dalam apa yang disebut “kode langsung”. Untuk melakukan ini, ubah digit paling signifikan dari angka tersebut menjadi 1.
    Hasil tindakan:

    
    10000000 0000000 0000000 00001101
  2. Selanjutnya kita balikkan semua bit (kita ubah 0 menjadi 1, dan 1 menjadi 0) kecuali bit tanda. Sebenarnya kami sudah mengubahnya.
    Hasil tindakan:

    
    11111111 11111111 11111111 11110010

    (ya, langkah 1 dan 2 bisa digabungkan, tapi lebih baik dipikir seperti itu)

  3. Tambahkan 1 ke angka yang dihasilkan
    Hasil tindakan:

    
    11111111 11111111 11111111 11110011
Bilangan biner yang dihasilkan adalah -13, ditulis dalam kode komplemen dua, dan pergeseran bit (dan operasi lainnya) akan diterapkan secara khusus padanya. Hanya saja perbedaan logika pengoperasiannya tidak terlihat di semua pengoperasian. Katakanlah, untuk pergeseran yang sama ke kiri, perbedaannya tidak kentara; kita dapat menangani bilangan negatif dengan cara yang sama seperti bilangan positif. Sekarang mari kita bergeser ke kanan -13 >> 1. Karena operator kita >>mempertahankan tandanya, dalam operasi ini semua bit yang dibebaskan di sebelah kiri tidak diisi dengan nol, tetapi dengan satu. Jadi, menggeser nomornya

11111111 11111111 11111111 11110011
satu bit ke kanan, menghasilkan urutan bit berikut:

11111111 11111111 11111111 11111001
Jika kita mengubah angka ini menjadi kode langsung (yaitu, kurangi 1 terlebih dahulu, lalu balikkan semua bit kecuali yang pertama) kita mendapatkan nomornya:

10000000 00000000 00000000 00000111
atau -7. Sekarang kita telah memahami operator shift kanan yang mempertahankan tanda, akan menjadi jelas perbedaannya dengan operator >>>. a >>> n— operasi ini adalah pergeseran yang tidak ditandatangani, yaitu menggeser representasi biner suatu bilangan ake kanan sebanyak n bit, tetapi mengisi n bit yang dikosongkan di sebelah kiri bukan dengan satu, seperti operator >>, tetapi dengan nol. Ayo lakukan operasi -13 >>> 1. Kita sudah mempunyai bilangan -13dalam komplemen dua:

11111111 11111111 11111111 11110011
Dengan menggeser ke kanan sebanyak 1 bit dan mengisi bit bebas dengan nol, kita mendapatkan bilangan berikut:

01111111 11111111 11111111 11111001
Apa yang memberi angka dalam notasi desimal 2147483641.

Operator negasi bitwise ~

Operator unary ini bekerja sangat sederhana: ia membalikkan setiap bit representasi biner dari sebuah bilangan bulat. Mari kita ambil nomornya -13:

11111111 11111111 11111111 11110011
Operasi negasi bitwise ~13hanya akan membalikkan nilai setiap bit. Hasilnya kita mendapatkan:

00000000 00000000 00000000 00001100
Atau 12dalam bentuk desimal.

Kesimpulan singkat

  • Semua operator logika berlaku untuk ekspresi Boolean, yaitu operator yang dapat dikatakan benar atau salah .
  • Если операторы &, | or ^ применяются к числам, речь идёт уже не о логических операциях, а о побитовых. То есть оба числа переводятся в двоичную систему и к этим числам побитово применяют операции логического сложения, умножения or вычитания.
  • В математической логике операторам & и | соответствуют конъюнкция и дизъюнкция.
  • Логическое И похоже на умножения 1 (true) и 0 (false).
  • Логическое ИЛИ напоминает поиск максимума среди 1 (true) и 0 (false).
  • Для побитового отрицания целого числа a используется операция ~a.
  • Для логического отрицания булевского выражения a используется операция !a.
  • Отрицательные числа хранятся и обрабатываются в дополнительном codeе.
  • Поразрядный сдвиг вправо может сохранять знак (>>), а может — не сохранять (>>>).
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION