Jadual Kandungan
Logik XOR
Pernyataan Masalah
Contoh
Kaedah
pseudokod
Output
Analisis
Kesimpulan
Rumah pembangunan bahagian belakang C++ Laraskan panjang perwakilan binari dua nombor menjadi sama dan kemudian lakukan operasi XOR

Laraskan panjang perwakilan binari dua nombor menjadi sama dan kemudian lakukan operasi XOR

Sep 10, 2023 pm 04:01 PM
binari panjang XOR

Laraskan panjang perwakilan binari dua nombor menjadi sama dan kemudian lakukan operasi XOR

XOR, atau eksklusif OR, ialah operasi logik Boolean yang digunakan untuk menjana bit pariti untuk semakan ralat, toleransi kesalahan, dsb. Pelbagai simbol digunakan untuk mewakili operasi ini: ^, ⊕, ⊻, dsb.

Logik XOR

Operasi XOR adalah benar hanya jika kedua-dua parameter berbeza. Dengan kata lain, XOR bagi bit yang sama ialah 0, dan XOR bagi bit yang berbeza ialah 1.

Bit yang sama -

0^0=0

1^1=0

Bit yang berbeza −

0^1=1

1^0 = 1

Pernyataan Masalah

Diberi dua nombor a dan b, cari XORnya selepas membuat panjang perwakilan binarinya sama.

Petua − Dengan menambah sifar mengekor selepas nombor yang lebih kecil, perwakilan binari akan menjadi sama.

Contoh

Masuk -

a = 10, b = 5

Output-

0

Arahan

Perwakilan binari 10 ialah 1010 dan perwakilan binari 5 ialah 101.

Tambah sifar di belakang kepada 5 untuk mendapatkan 1010.

Oleh itu, keputusan XOR bagi 1010^1010 ialah 0.

Oleh itu, output.

Masuk -

a = 15, b = 8

Output

7

Arahan -

Perwakilan binari 15 ialah 1111 dan perwakilan binari 8 ialah 1000.

Memandangkan kedua-dua perwakilan binari adalah sama panjang, tidak perlu menambah sifar mengekor.

Hasil XOR bagi

1111 ^ 1000 ialah 0111, iaitu 7 dalam tatatanda perpuluhan. Oleh itu, keluarannya ialah 7.

Masuk -

a = 15, b = 3

Output

7

Arahan -

Perwakilan perduaan bagi 15 ialah 1111. Perwakilan perduaan bagi 3 ialah 11. Perwakilan perduaan bagi 3, dengan sifar mengekor, menjadi 1100.

Hasil XOR bagi 1111^1100 ialah 0011.

0011 ialah 3 dalam perwakilan perpuluhan. Oleh itu, hasilnya adalah output.

Kaedah

  • Kira bilangan digit dalam dua nombor.

  • Bilangan digit boleh dikira dengan mengalihkan nombor ke kanan sehingga menjadi sifar, dan mengira bilangan kali gelung dilaksanakan. Mengalihkan nombor ke kanan sebanyak 1 tempat adalah bersamaan dengan membahagikannya dengan 2.

  • Jika nombor yang lebih kecil mempunyai lebih sedikit digit, lakukan anjakan kiri seperti berikut: smaller_number

  • XOR dua nombor untuk mendapatkan jawapan dan mencetaknya.

pseudokod

main()
Initialize a -> 15  and  b -> 3.
Function call find_xor(a,b);

find_xor(int a, int b):
c -> minimum of a and b.
d -> maximum of a and b.
count_c -> bit_count(c)
count_d ->bit_count(d)
If count_c < cound_d, then:
c -> c << (count_d - count_c)
Return c XOR d.

bit_count(int x):
count -> 0
while(x != 0):
	Increase the count by one.
	Right shift x by 1, i.e., divide it by 2.
Return x.
Salin selepas log masuk

Contoh

Di bawah ialah program C++ untuk mengira nilai XOR dua nombor selepas membuat perwakilan binarinya sama panjang.

#include <bits/stdc++.h>
using namespace std;
// Function to count the number of bits in binary representation
// of an integer
int bit_count(int x){
   //Initialize count as zero
   int count = 0;
   //Count the bits till x becomes zero.
   while (x)	{
      //Incrementing the count
	  count++;
      // right shift x by 1
      // i.e, divide by 2
      x = x>>1;
   }
   return count;
}
//Function to find the XOR of two numbers. Trailing zeros are added to the number having a lesser number of bits to make the bits in both numbers equal.
int find_xor(int a, int b){
   //Store the minimum and maximum of both the numbers
   int c = min(a,b);
   int d = max(a,b);
   //Store the number of bits in both numbers.
   int count_c = bit_count(c);
   int count_d = bit_count(d);
   //If the number of bits in c is less, left shift if by the number of exceeding bits.
   if (count_c < count_d){
      c = c << ( count_d - count_c);
   }
   return (c^d);
}
//Driver code
int main(){
   //Initialize a and b.
   int a = 15, b = 3;
   cout << "a = 15, b = 3" << endl;
   //Store the XOR of both the numbers after required computations
   //Function call
   int ans = find_xor(a,b);
   //Print the final result
   cout << "XOR of a and b: "<<ans<<endl;
   return 0;
}
Salin selepas log masuk

Output

a = 15, b = 3
XOR of a and b: 3
Salin selepas log masuk

Analisis

Kerumitan masa - O(log n) [logaritma]

Disebabkan gelung while dalam fungsi kiraan, kerumitan masa adalah logaritma.

Oleh kerana nombor ini dibahagikan dengan dua sehingga menjadi sifar, kerumitan menjadi log n asas 2.

Kerumitan Angkasa - O(1) [Malar]

Kerumitan ruang adalah malar kerana tiada ruang tambahan digunakan dalam program.

Kesimpulan

Dalam artikel ini, kami membincangkan masalah pengiraan XOR dua nombor selepas membuat perwakilan binarinya sama panjang.

Kami membincangkan konsep XOR dan kemudian menerangkan contoh dan kaedah. Kaedah ini menggunakan sifar mengekor untuk menyamakan bilangan bit dalam perwakilan binari. Kami juga melihat pseudokod dan program C++ untuk masalah itu.

Atas ialah kandungan terperinci Laraskan panjang perwakilan binari dua nombor menjadi sama dan kemudian lakukan operasi XOR. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengira aritmetik binari Bagaimana untuk mengira aritmetik binari Jan 19, 2024 pm 04:38 PM

Aritmetik binari ialah kaedah operasi berdasarkan nombor binari Operasi asasnya termasuk penambahan, penolakan, pendaraban dan pembahagian. Selain operasi asas, aritmetik binari juga termasuk operasi logik, operasi anjakan dan operasi lain. Operasi logik termasuk DAN, ATAU, NOT dan operasi lain, dan operasi anjakan termasuk operasi anjakan kiri dan anjakan kanan. Operasi ini mempunyai peraturan dan keperluan operan yang sepadan.

Bagaimana untuk menukar binari kepada perenambelasan menggunakan bahasa C? Bagaimana untuk menukar binari kepada perenambelasan menggunakan bahasa C? Sep 01, 2023 pm 06:57 PM

Nombor binari diwakili oleh 1s dan 0s. Sistem nombor perenambelasan 16-bit ialah {0,1,2,3…..9,A(10),B(11),…F(15)} untuk menukar daripada perwakilan binari kepada perenambelasan Mewakili bahawa bit ID rentetan dikumpulkan ke dalam ketulan 4-bit, dipanggil nibbles bermula dari bahagian yang paling tidak ketara. Setiap blok digantikan dengan nombor heksadesimal yang sepadan. Mari kita lihat contoh untuk mendapatkan pemahaman yang jelas tentang perwakilan nombor heksadesimal dan perduaan. 001111100101101100011101 3 E 5 B&nb

Apakah dua penambahbaikan utama EDVAC? Apakah dua penambahbaikan utama EDVAC? Mar 02, 2023 pm 02:58 PM

EDVAC mempunyai dua penambahbaikan utama: satu ialah penggunaan binari, dan satu lagi ialah penyiapan program yang disimpan, yang secara automatik boleh maju dari satu arahan program ke seterusnya, dan operasinya boleh diselesaikan secara automatik melalui arahan. "Arahan" termasuk data dan program, yang dimasukkan ke dalam peranti memori mesin dalam bentuk kod Iaitu, peranti memori yang sama yang menyimpan data digunakan untuk menyimpan arahan untuk melaksanakan operasi -dipanggil atur cara tersimpan.

Bagaimana untuk membaca fail binari di Golang? Bagaimana untuk membaca fail binari di Golang? Mar 21, 2024 am 08:27 AM

Bagaimana untuk membaca fail binari di Golang? Fail binari ialah fail yang disimpan dalam bentuk binari yang mengandungi data yang boleh dikenali dan diproses oleh komputer. Di Golang, kita boleh menggunakan beberapa kaedah untuk membaca fail binari dan menghuraikannya ke dalam format data yang kita inginkan. Berikut akan memperkenalkan cara membaca fail binari di Golang dan memberikan contoh kod tertentu. Pertama, kita perlu membuka fail binari menggunakan fungsi Buka dari pakej os, yang akan mengembalikan objek fail. Kemudian kita boleh buat

计算机内部采用二进制的主要原因是什么? 计算机内部采用二进制的主要原因是什么? Apr 04, 2019 pm 02:25 PM

计算机采用二进制的主要原因:1、计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示;2、二进制中只使用0和1两个数字,传输和处理时不易出错,因而可以保障计算机具有很高的可靠性。

Belajar dengan mudah untuk menukar perenambelasan kepada perduaan dalam bahasa Go Belajar dengan mudah untuk menukar perenambelasan kepada perduaan dalam bahasa Go Mar 15, 2024 pm 04:45 PM

Tajuk: Belajar menukar heksadesimal kepada perduaan dalam bahasa Go Contoh kod khusus diperlukan Dalam pengaturcaraan komputer, operasi penukaran antara nombor asas yang berbeza sering terlibat. Antaranya, penukaran antara heksadesimal dan binari adalah agak biasa. Dalam bahasa Go, kita boleh mencapai penukaran heksadesimal kepada binari melalui beberapa contoh kod mudah Mari kita belajar bersama. Mula-mula, mari kita lihat kaedah perwakilan heksadesimal dan perduaan. Heksadesimal ialah kaedah mewakili nombor, menggunakan 0-9 dan A-F untuk mewakili 1

Apakah had panjang tatasusunan PHP? Apakah had panjang tatasusunan PHP? Mar 13, 2024 pm 06:30 PM

Tiada had tetap untuk panjang tatasusunan dalam PHP, ia boleh dilaraskan secara dinamik mengikut saiz memori sistem. Dalam PHP, tatasusunan ialah struktur data yang sangat fleksibel yang boleh menyimpan sebarang bilangan elemen, dan setiap elemen boleh menjadi nilai apa-apa jenis, atau tatasusunan lain. Had panjang tatasusunan PHP terutamanya bergantung pada saiz memori sistem dan had memori konfigurasi PHP. Secara umumnya, jika memori sistem cukup besar dan had ingatan PHP cukup tinggi, panjang tatasusunan boleh menjadi sangat besar. Walau bagaimanapun, jika sistem anda kekurangan memori atau

Bagaimana untuk menyatakan nombor negatif dalam binari Bagaimana untuk menyatakan nombor negatif dalam binari Nov 23, 2023 pm 04:11 PM

Nombor negatif diwakili dalam komputer menggunakan pelengkap dua, iaitu nombor negatif diwakili oleh pelengkap dua nombor positif.

See all articles