Elemen logis tidak termasuk atau. Operator logis VBA operasi logis tidak termasuk atau

Seringkali, untuk menunjukkan kemampuan terbatas dari perceptrons lapisan tunggal ketika memecahkan masalah, dilaksanakan dengan pertimbangan yang disebut masalah. XOR - eksklusif atau.

Esensi tugas adalah sebagai berikut. Fungsi logis XOR tidak termasuk atau. Fungsi ini dari dua argumen, yang masing-masing bisa nol atau unit. Dibutuhkan nilai ketika salah satu argumen sama dengan satu, tetapi tidak keduanya, jika tidak. Masalahnya dapat diilustrasikan menggunakan sistem satu lapis satu lapis dengan dua input yang ditunjukkan pada gambar di bawah ini.

Menunjukkan satu input melalui, dan yang lainnya, maka semua kemungkinan kombinasi mereka akan terdiri dari empat poin di pesawat. Tabel di bawah ini menunjukkan tautan yang diperlukan antara input dan output, di mana kombinasi input yang harus memberikan nol output berlabel dan, satu output - dan.

Poin. Nilai Nilai Diperlukan Output.
0 0 0
1 0 1
0 1 1
1 1 0

Satu neuron dengan dua input dapat membentuk permukaan yang menentukan dalam bentuk garis lurus sewenang-wenang. Agar jaringan menerapkan fungsi XOR, tabel yang ditentukan di atas, Anda perlu memposisikan langsung sehingga titik berada di satu sisi lurus, dan intinya ada di sisi lain. Setelah mencoba menggambar garis lurus seperti di bawah ini, kami memastikan itu tidak mungkin. Ini berarti bahwa nilai-nilai apa pun dikaitkan dengan timbangan dan ambang batas, jaringan saraf lapisan tunggal tidak dapat mereproduksi rasio antara input dan output yang diperlukan untuk mewakili fungsi XOR.

Namun, fungsi XOR mudah dibentuk oleh jaringan dua lapis, dan dalam banyak hal. Pertimbangkan salah satu dari cara ini. Kami memutakhirkan jaringan pada gambar, menambahkan lapisan neuron tersembunyi lain:

Perhatikan bahwa jaringan ini diberikan apa adanya, mis. Kita bisa berasumsi bahwa itu sudah dilatih. Angka-angka di atas panah menunjukkan nilai timbangan sinaptik. Sebagai fungsi aktivasi, kami akan menerapkan fungsi lompatan tunggal dengan ambang batas yang memiliki grafik berikut:

Kemudian hasil pengoperasian jaringan saraf seperti itu dapat diwakili sebagai tabel berikut:

Poin. Nilai Nilai Diperlukan Output.
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Masing-masing dari dua neuron dari lapisan pertama membentuk permukaan yang menentukan dalam bentuk garis lurus sewenang-wenang (membagi pesawat menjadi dua pesawat setengah), dan neuron dari lapisan output menggabungkan kedua solusi ini, membentuk permukaan yang menentukan dalam bentuk strip yang dibentuk oleh neuron lurus paralel dari lapisan pertama:

Jaringan saraf yang digunakan dalam artikel ini untuk menyelesaikan tugas XOR adalah primitif dan tidak menggunakan semua kemampuan jaringan multi-layer. Jelas bahwa jaringan saraf multilayer memiliki kapasitas yang lebih besar mewakili daripada lapisan tunggal, hanya dalam kasus keberadaan nonlinier. Dan dalam jaringan ini, fungsi aktivasi linier ambang diterapkan. Jaringan semacam itu tidak dapat dilatih, misalnya, dengan menerapkan algoritma distribusi terbalik terbalik.

Fungsi yang dilakukan oleh mereka agak lebih rumit daripada dalam hal item dan atau elemen atau. Semua input elemen tidak termasuk atau sama, tetapi tidak ada input yang dapat memblokir input lain dengan menetapkan sinyal output ke tingkat unit atau nol. Tabel 4.1. Tangki kebenaran elemen dua arah tidak termasuk atau
Login 1. Login 2. Keluaran
0 0 0
0 1 1
1 0 1
1 1 0


Ara. 4.1.

Di bawah fungsi, tidak termasuk atau mengacu pada yang berikut: unit pada output muncul ketika hanya satu input yang ada. Jika unit pada input adalah dua atau lebih, atau jika pada semua input nol, maka output akan nol. Tangki kebenaran Elemen dua kali tidak termasuk atau diberikan dalam tabel. 4.1. Penunjukan yang diadopsi di sirkuit domestik dan asing ditunjukkan pada Gambar. 4.1. Prasasti pada penunjukan domestik elemen tidak termasuk atau "\u003d 1" hanya menunjukkan bahwa situasinya dibedakan ketika satu dan hanya satu unit pada input.

Elemen tidak termasuk atau dalam seri standar sedikit. Seri domestik menawarkan chip LP5 (empat elemen dua sumbu dengan output 2C), LL3 dan LP12, berbeda dari output LP5 OK. Fungsi yang terlalu spesifik diimplementasikan oleh elemen-elemen ini.

Dari sudut pandang matematika, elemen tidak termasuk atau melakukan operasi apa yang disebut penjumlahan modul 2. Oleh karena itu, elemen-elemen ini juga disebut adder dalam modul dua. Seperti yang sudah dicatat dalam kuliah sebelumnya, penjumlahan Modul 2 adalah tanda plus yang tertutup dalam lingkaran.

Penggunaan utama elemen tidak termasuk atau, langsung yang berikut ini tatataset kebenaranIni terdiri dalam membandingkan dua sinyal input. Dalam kasus ketika dua unit atau dua nol datang ke input (sinyal bertepatan), nol dibentuk pada output (lihat Tabel 4.1). Biasanya, dengan aplikasi ini, level permanen dipasok ke satu input elemen, dengan mana sinyal pengubah waktu datang ke input lain. Tetapi secara signifikan lebih sering untuk perbandingan sinyal dan kode menerapkan chip khusus codovasi codov.yang akan dibahas dalam kuliah berikutnya.

Sebagai modul Adder 2, elemen tersebut tidak termasuk atau digunakan dalam pembagi paralel dan berurutan untuk modul 2, yang berfungsi untuk menghitung pemeriksaan siklik. Tetapi skema ini akan dibahas secara rinci dalam kuliah 14.15.

Penggunaan elemen yang penting tidak termasuk atau merupakan inverter yang dikelola (Gbr. 4.2). Dalam hal ini, salah satu input elemen digunakan sebagai manajer, dan sinyal informasi datang ke elemen lain. Jika unit input, maka sinyal input terbalik jika nol tidak terbalik. Paling sering sinyal kontrol Ditetapkan oleh tingkat konstan dengan mendefinisikan mode elemen, dan sinyal informasi berdenyut. Artinya, elemen tidak termasuk atau dapat mengubah polaritas sinyal input atau front, dan mungkin tidak diubah tergantung pada sinyal kontrol.


Ara. 4.2.

Dalam kasus ini ketika ada dua sinyal dengan polaritas yang sama (positif atau negatif), dan pada saat yang sama kedatangan simultan mereka dikecualikan, elemennya tidak termasuk atau dapat digunakan untuk mencampur sinyal-sinyal ini (Gbr. 4.3). Dengan polaritas sinyal input, sinyal output dari elemen akan positif. Dengan sinyal input positif, elemen tidak termasuk atau akan beroperasi sebagai elemen 2, dan dengan negatif itu akan menggantikan elemen 2I - tidak. Pengganti seperti itu mungkin berguna dalam kasus di mana beberapa elemen tidak termasuk atau ditinggalkan dalam diagram. Benar, itu harus diingat penundaan distribusi Sinyal dalam elemen tidak termasuk atau biasanya agak lebih besar (sekitar 1,5 kali) daripada penundaan elemen paling sederhana dan, dan non, atau, atau tidak.

Bit adalah satuan minimum pengukuran informasi, karena menyimpan salah satu dari dua nilai - 0 (salah) atau 1 (benar). Salah dan benar diterjemahkan ke dalam kebohongan dan kebenaran Rusia. Artinya, sel bit dapat secara bersamaan hanya dalam satu keadaan dua yang mungkin. Biarkan saya mengingatkan Anda, dua keadaan yang mungkin dari sel jalang sama - 1 dan 0.
Ada operasi tertentu untuk manipulasi dengan bit. Operasi ini disebut operasi logis atau boolean, dinamai salah satu ahli matematika - George Bul (1815-1864), yang berkontribusi pada pengembangan bidang ilmu ini.
Semua operasi ini dapat diterapkan pada sedikit, terlepas dari yang cocok - 0 (nol) atau 1 (satu). Di bawah ini adalah operasi logis utama dan contoh penggunaannya.

Operasi logika dan (dan)

Penunjukan dan: &

Operasi logis dan dilakukan dengan dua bit, sebut saja mereka a dan b. Hasil operasi logis dan akan sama dengan 1, jika A dan B sama dengan 1, dan dalam semua kasus (lain lainnya), hasilnya akan sama dengan 0. Kami melihat tabel kebenaran dari operasi logis dan .

a (bit 1) b (bit 2) a (bit 1) & b (bit 2)
0 0 0
0 1 0
1 0 0
1 1 1

Operasi logika atau (atau)

Atau: |

Operasi logis atau dieksekusi dengan dua bit (A dan B). Hasil dari eksekusi operasi logis atau akan menjadi 0 jika A dan B sama dengan 0 (nol), dan dalam semua kasus (lain lainnya), hasilnya adalah 1 (unit). Kami melihat tabel kebenaran operasi logis atau.

a (bit 1) b (bit 2) a (bit 1) | B (bit 2)
0 0 0
0 1 1
1 0 1
1 1 1

Operasi logis tidak termasuk atau (xor).

Designation XOR: ^
Operasi logis tidak termasuk atau dieksekusi dengan dua bit (A dan B). Hasil operasi logika XOR akan sama dengan 1 (unit), jika salah satu bit A atau B adalah 1 (unit), dalam semua kasus lain, hasilnya adalah 0 (nol). Kami melihat tabel kebenaran dari operasi logis tidak termasuk atau.

a (bit 1) b (bit 2) a (bit 1) ^ b (bit 2)
0 0 0
0 1 1
1 0 1
1 1 0

Operasi logis tidak (tidak)

Notasi tidak: ~
Operasi logis tidak dilakukan dengan satu bit. Hasil eksekusi operasi logis ini langsung tergantung pada keadaan bit. Jika bit itu dalam keadaan nol, hasil dari tidak eksekusi akan sama dengan satu dan sebaliknya. Kami melihat tabel kebenaran operasi logis.

a (bit 1) ~ A (bit penolakan)
0 1
1 0

Ingat 4 operasi logis ini. Menggunakan operasi logis ini, kita bisa mendapatkan hasil yang mungkin. Rincian tentang penggunaan operasi logis dalam baca C ++.

Dalam artikel ini kita akan berbicara tentang beberapa operasi bit. Pertimbangkan yang utama: xor (tidak termasuk atau), dan (dan), bukan (tidak) dan juga atau (atau).

Seperti diketahui, satuan minimum pengukuran informasi adalah sedikityang menyimpan salah satu dari 2 nilai: 0 ( Salah, kebohongan) atau 1 ( Benar., kebenaran). Dengan demikian, sel bit dapat secara bersamaan hanya berada di salah satu dari dua keadaan yang mungkin.

Untuk manipulasi dengan bit, operasi tertentu digunakan - logika atau boolean.. Mereka dapat diterapkan pada sedikit, terlepas dari apa nilainya nol atau unit. Nah, mari kita lihat contoh-contoh menggunakan tiga operasi logis dasar.

Operasi logika dan (dan)

Dan. Menunjukkan tanda &.

Dan operator dilakukan dengan 2 bit, kami ambil, misalnya, a dan b. Hasil operasi operasi dan sama dengan 1, jika A dan B sama dengan 1. Dalam kasus lain, hasilnya adalah 0. Misalnya, dengan bantuan dan Anda dapat mengetahui, nomor mandiri atau tidak.

Lihatlah tabel kebenaran dan:

Operasi logika atau (atau)

Denotes Tanda | .

Operator Atau. Juga dilakukan dengan 2 bit (A dan B). Hasilnya adalah 0, jika A dan B sama dengan 0, jika tidak, itu sama dengan 1. Kami melihat tabel kebenaran.

Operasi logika XOR (tidak termasuk atau)

Pernyataan XOR dilambangkan ^.

Xor Dilakukan dengan 2 bit (A dan B). Hasil operasi operasi XOR ( mengecualikan atau) Sama dengan 1, ketika salah satu bit b atau a adalah 1. Dalam situasi lain, hasil menggunakan pernyataan XOR adalah 0.

Tabel kebenaran operasi logis untuk XOR (tidak termasuk atau) terlihat seperti ini:

Menggunakan XOR (eksklusif atau), Anda dapat mengubah nilai 2 tipe data identik variabel, tanpa menggunakan variabel sementara. Dan juga, oleh XOR, Anda dapat mengenkripsi teks, misalnya:

String msg \u003d "Ini adalah pesan"; Pesan char \u003d msg.tocararray (); String key \u003d ". *)"; String encryptedstring \u003d string baru (); untuk (int i \u003d 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

Saya setuju, XOR jauh dari metode enkripsi yang paling dapat diandalkan, tetapi ini tidak berarti bahwa itu tidak dapat dibuat bagian dari algoritma enkripsi.

Bukan operasi logis (tidak)

Ini adalah penolakan batch, oleh karena itu dilakukan dengan satu bit dan dilambangkan ~.

Hasilnya tergantung pada status bit. Jika dalam keadaan nol, hasil operasi adalah unit dan sebaliknya. Semuanya sangat sederhana.

4 operasi logis ini harus diingat terutama, karena dengan bantuan mereka, Anda bisa mendapatkan hampir semua hasil yang memungkinkan. Ada juga operasi seperti<< (побитовый сдвиг влево) и >\u003e (Bergeser bitwise ke kanan).

Perintah XOR pada assembler melakukan pengecualian atau antara semua bit dari dua operan. Hasil operasi XOR dicatat di operan pertama. Sintaksis:

XOR Receiver, Sumber

Pernyataan XOR selalu menjatuhkan CF dan, serta (tergantung pada hasilnya) mengubah bendera SF, ZF dan PF. Nilai bendera AF dapat berupa apa saja - itu tidak tergantung pada hasil operasi.

Penerima bisa menjadi salah satu dari yang berikut:

  • Area memori (MEM)

Sumbernya mungkin salah satu dari yang berikut:

  • Area memori (MEM)
  • Daftar Tujuan Umum (Reg)
  • Nilai Langsung - Konstan (IMM)

Dengan memperhitungkan pembatasan yang dijelaskan di atas, kombinasi penerima sumber mungkin sebagai berikut:

Reg, MEM MEM, REG, REG, IMM REG, IMM

Pengoperasian tidak termasuk atau

Saat menjalankan nilai eksklusif atau nilai, itu akan sama dengan 1 jika bit dibandingkan (tidak sama). Jika bit dibandingkan dengan nilai yang sama, hasilnya akan sama dengan 0.

Oleh karena itu, operasi ini disebut eksklusif. Ini menghilangkan bit yang sama dari perbandingan, dan dengan operasi operasi yang tidak sama.

Tetapi, karena setiap pasangan bit tidak setara adalah 0 dan 1, maka pengoperasian logis atau sebagai hasilnya akan memberi 1.

Tatac kebenaran mengecualikan atau

Tabel kebenaran di bawah ini:

0 xor 0 \u003d 0 xor 1 = 1 1 Xor 0 \u003d. 1 1 Xor 1 = 0

Fitur Operasi XOR

Operasi XOR memiliki properti reversibilitas. Jika Anda tampil dua kali dengan operan yang sama dua kali, maka nilai nilainya terbalik. Yaitu, jika Anda memenuhi operasi ini antara bit X. dan Y., pada akhirnya kami mendapatkan nilai batch awal H..

0 Xor 0 \u003d 0 xor. 0 = 0 0 Xor 1 \u003d 1 xor. 1 = 0 1 Xor 0 \u003d 1 xor. 0 = 1 1 Xor 1 \u003d 0 xor. 1 = 1

Properti ini dapat digunakan, misalnya, untuk enkripsi data paling sederhana (ini entah bagaimana yang lain).

Memeriksa bendera setelah operasi XOR

Perintah XOR bekerja dengan operasi 8, 16 dan 32-bit.

Kadang-kadang ada kebutuhan untuk memeriksa bendera PF setelah melakukan operasi, untuk mengetahui berapa banyak bit unit (bahkan aneh) terkandung dalam junior Bay. Hasil (ini diperlukan tidak hanya jika operasi XOR dilakukan, tetapi juga ketika melakukan operasi aritmatika dan logis lainnya).

Jika bendera diinstal, maka hasilnya adalah jumlah bit tunggal yang jelas. Jika tidak, bendera akan diatur ulang.

Anda juga dapat memverifikasi nomor apa pun, tanpa mengubah nilai hasilnya. Untuk melakukan ini, Anda perlu mengeksekusi perintah XOR dengan nol nilai. Artinya, penerima harus menjadi angka yang dapat diverifikasi, dan sumbernya harus nol. Dan kemudian Anda perlu memeriksa bendera keyakinan. Contoh:

Al, 10110101b; tempat di al nomor dengan ganjil; jumlah bit tunggal (5) xor al, 0; pada saat yang sama, bendera PF tidak; set (PO) Mov Al, 10110111B; Tempatkan di Al the Nomor dengan pembaca; jumlah bit tunggal (6) xor al, 0; dalam hal ini, bendera PF; akan diatur (PE)

Dalam debuggers, biasanya digunakan untuk menetapkan sejumlah unit dalam hasil yang dihasilkan, dan paritas bahkan pengurangan digunakan, dan untuk PO aneh (paritas ganjil).

Siap dalam kata-kata 16-bit

Seperti yang telah disebutkan, bendera kepercayaan ditetapkan tergantung pada jumlah unit yang terkandung dalam hasil yang lebih muda. Untuk memeriksa pembaca operan 16-bit, Anda perlu mengeksekusi perintah XOR antara byte senior dan termuda dari nomor ini:

Mov ax, 64c1h; 0110 0100 1100 0001 - 6 bit tunggal xor ah, al; bendera kesiapan akan diinstal

Dengan cara yang begitu sederhana, operan 16-bit dibagi menjadi dua byte (2 kelompok 8 bit), dan ketika mengeksekusi perintah XOR, bit tunggal yang ada dalam pelepasan yang sesuai dari dua operan 8-bit tidak akan dimasukkan ke dalam Akun. Karena bit yang sesuai adalah nol.

Perintah XOR menghapus setiap unit unit berpotongan dua operan 8-bit dari hasil dan menambah bit tunggal terbalik ke hasilnya. Artinya, kesiapan nomor 8-bit yang diterima oleh kita akan sama dengan kesiapan angka 16-bit asli.

0110 0100 1100 0001 - Sumber nomor 16-bit 0 Xor 1 = 1 1 Xor 1 = 0 1 Xor 0 = 1 0 Xor 0 = 0 0 Xor 0 = 0 1 Xor 0 = 1 0 Xor 0 = 0 0 Xor 1 = 1

Akibatnya, 4 unit, yaitu, bendera PF akan diinstal

Siap dalam kata ganda 32-bit

Nah, jika Anda perlu menentukan kesiapan dalam angka 32-bit?

Kemudian jumlahnya dibagi menjadi empat byte, dan secara bergantian dengan byte ini, operasi dilakukan atau.

Misalnya, kami memecahkan angka 32-bit Dgn B. Empat byte B0., B1., B2., B3.dimana B0. - Ini adalah byte yang lebih muda.

Kemudian untuk menentukan kesiapan nomor di kita perlu menggunakan rumus berikut:

B0 xor b1 xor b2 xor b3

Tetapi di assembler, catatan seperti itu tidak dapat diterima. Karena itu, Anda harus berpikir sedikit.

Dan akhirnya, asal mnemonik Xor. Ada kata e dalam bahasa Inggris X.persepsi - Pengecualian. Pengurangan dari kata ini adalah surat itu H. (Jadi itu perlu). Anda mungkin bertemu seperti itu dalam iklan atau nama-nama produk yang produsennya mengklaim (baik, atau berpikir klaim itu) ke eksklusivitas. Misalnya, Lada Xray, Sony Xperia, dll. Jadi XOR adalah singkatan yang dikumpulkan dari dua kata - e X.cept. Atau. - tidak termasuk atau.