Perpuluhan bersamaan kod Kelabu dan susunan terbaliknya
Kod kelabu atau kod binari terpantul ialah perwakilan perduaan bagi nombor di mana dua nombor berturut-turut berbeza dengan hanya satu bit.
Sebagai contoh, kod Kelabu 1 ialah 001, dan kod Kelabu 2 ialah 011.
Kod kelabu sering digunakan untuk pembetulan ralat kerana ia menghalang beberapa ralat data yang boleh berlaku dalam perwakilan binari biasa apabila keadaan berubah.
Disebabkan sifat uniknya, kod Kelabu juga membantu dalam peta k, komunikasi, dsb.
Prasyarat
Sebelum membaca lebih lanjut, sila kaji tatatanda kod perpuluhan, binari dan kelabu.
Pernyataan Masalah 1
Diberi nombor perpuluhan n, cari kod Kelabu bagi bentuk perpuluhan nombor itu.
Contoh
Input: 3 Output: 2
Penjelasan -> Perwakilan binari 3 ialah 011. Perwakilan kod Kelabunya ialah 010. Perwakilan perpuluhan bagi 010 ialah 2.
Oleh itu, kod Kelabu bersamaan perpuluhan 3 ialah 2.
Input: 5 Output: 7
Penjelasan -> Perwakilan binari 5 ialah 101. Perwakilan kod Kelabunya ialah 111 dan perwakilan perpuluhannya ialah 7.
Oleh itu, perpuluhan kod Kelabu bersamaan 5 ialah 7.
Penyelesaian
Penyusun memahami nombor dalam format binari.
Jadi, dalam program kami, apabila kami memasukkan nombor dalam format perpuluhan, ia ditafsirkan sebagai binari.
Jadi kita hanya perlu menukar nombor daripada setara binari kepada kod Kelabunya.
Penukaran Kod Binari kepada Kelabu
Bit paling kiri bagi perwakilan binari adalah sama dengan kod Kelabu. Bit berikut di sebelah kanan ditemui dengan XORing bit binari berturut-turut.
Sebagai contoh -
Pertimbangkan n = 3. Kod binari untuk 3 ialah 011.
Bit paling kiri kod binari dan kod Kelabu adalah sama. Oleh itu, bit pertama dari kiri dalam kod Kelabu ialah 0.
Untuk digit kedua dari kiri, XOR digit pertama dan kedua dari kiri dalam kod binari. 0 XOR 1 = 1.
Untuk digit ketiga dari kiri, XOR digit kedua dan ketiga dari kiri dalam kod binari. 1 XOR 1 = 0.
Oleh itu kod Kelabu: 010.
Algoritma: menggunakan operator bitwise
Kita boleh dapatkan kod Kelabu nombor n dengan mengikut langkah -
n Beralih ke kanan sebanyak 1.
XOR nombor yang dialihkan ke kanan dengan n asal.
Contoh
Di bawah ialah program C++ yang menggunakan operator bitwise untuk mencari kod Kelabu daripada kod binari
#include <bits/stdc++.h> using namespace std; //This function returns the decimal equivalent // of the gray code of n. int dec_equi_of_gray(int n) { return n ^ (n >> 1); } int main(){ int n = 3; cout<<"The decimal equivalent of the gray code of 3 is: "; //Function call to convert binary code to gray code cout << dec_equi_of_gray(n) << endl; return 0; }
Output
The decimal equivalent of the gray code of 3 is: 2
Pernyataan Masalah 2
Memandangkan nilai perpuluhan kod Kelabu, cari nilai kod perpuluhannya.
Contoh
Input: 15 Output: 10
Penjelasan -> Kod kelabu diberikan sebagai input: 1111 (nilai binari 15).
Sekarang, tukar kod Kelabu kepada kod binari untuk mendapatkan 1010 daripada 1111.
1010 ialah nilai binari 10. Oleh itu output.
Input: 10 Output: 12
Penjelasan -> Kod kelabu diberikan sebagai input: 1010 (nilai binari 10).
Perwakilan binari kod Kelabu 1010 ialah 1100. Perwakilan perpuluhan bagi 1100 ialah 12.
Kod kelabu kepada penukaran kod binari
Bit paling kiri (MSB) kod binari adalah sama dengan MSB kod Kelabu. Bit berikut ditemui dengan XORing bit binari terindeks sebelumnya dengan bit skala kelabu terindeks semasa.
Contoh: Pertimbangkan Kod Kelabu 1111.
MSB kod binari akan sama dengan MSB kod Kelabu. Oleh itu, MSB akan menjadi 1.
Untuk dua bit kiri, semak XOR dua bit kiri kod Kelabu dan bit paling kiri kod binari. Oleh itu, 1^1 = 0.
Begitu juga, untuk digit ketiga paling kiri, 0^1 = 1.
Untuk digit keempat paling kiri, 1^1 = 0.
Oleh itu kod binari: 1010.
Contoh
Di bawah ialah program C++ untuk mencari kod binari daripada kod Kelabu menggunakan operator bitwise
#include <bits/stdc++.h> using namespace std; //This function returns the decimal value of //the binary code converted from the gray code n. int gray_to_binary(int n){ int binary = n; while (n > 0){ n >>= 1; binary ^= n; } return binary; } // Driver Code int main(){ int n = 15; cout<<"The decimal value of the binary code converted from the gray code is: "; // Function call to convert gray code to binary code cout << gray_to_binary(n) << endl; return 0; }
Output
The decimal value of the binary code converted from the gray code is: 10
Kesimpulan
Artikel ini menyelesaikan masalah mencari persamaan perpuluhan kod Kelabu dan songsangannya bagi nombor n yang diberikan. Kami menyelesaikan masalah ini menggunakan operator bitwise. Program C++ disediakan untuk kedua-dua bahagian soalan.
Atas ialah kandungan terperinci Perpuluhan bersamaan kod Kelabu dan susunan terbaliknya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Struktur Data Bahasa C: Perwakilan data pokok dan graf adalah struktur data hierarki yang terdiri daripada nod. Setiap nod mengandungi elemen data dan penunjuk kepada nod anaknya. Pokok binari adalah jenis pokok khas. Setiap nod mempunyai paling banyak dua nod kanak -kanak. Data mewakili structtreenode {intData; structtreenode*left; structtreenode*right;}; Operasi mewujudkan pokok traversal pokok (predecision, in-order, dan kemudian pesanan) Node Node Carian Pusat Node Node adalah koleksi struktur data, di mana unsur-unsur adalah simpul, dan mereka boleh dihubungkan bersama melalui tepi dengan data yang betul atau tidak jelas yang mewakili jiran.

Kebenaran mengenai masalah operasi fail: Pembukaan fail gagal: Kebenaran yang tidak mencukupi, laluan yang salah, dan fail yang diduduki. Penulisan data gagal: Penampan penuh, fail tidak boleh ditulis, dan ruang cakera tidak mencukupi. Soalan Lazim Lain: Traversal fail perlahan, pengekodan fail teks yang salah, dan kesilapan bacaan fail binari.

Artikel membincangkan penggunaan rujukan RValue yang berkesan dalam C untuk bergerak semantik, pemajuan sempurna, dan pengurusan sumber, menonjolkan amalan terbaik dan penambahbaikan prestasi. (159 aksara)

Pengiraan C35 pada dasarnya adalah matematik gabungan, yang mewakili bilangan kombinasi yang dipilih dari 3 dari 5 elemen. Formula pengiraan ialah C53 = 5! / (3! * 2!), Yang boleh dikira secara langsung oleh gelung untuk meningkatkan kecekapan dan mengelakkan limpahan. Di samping itu, memahami sifat kombinasi dan menguasai kaedah pengiraan yang cekap adalah penting untuk menyelesaikan banyak masalah dalam bidang statistik kebarangkalian, kriptografi, reka bentuk algoritma, dll.

Artikel ini membincangkan menggunakan semantik Move dalam C untuk meningkatkan prestasi dengan mengelakkan penyalinan yang tidak perlu. Ia meliputi pelaksanaan pembina bergerak dan pengendali tugasan, menggunakan STD :: bergerak, dan mengenal pasti senario utama dan perangkap untuk Appl yang berkesan

Fungsi bahasa C adalah asas untuk modularization kod dan bangunan program. Mereka terdiri daripada pengisytiharan (tajuk fungsi) dan definisi (badan fungsi). Bahasa C menggunakan nilai untuk lulus parameter secara lalai, tetapi pembolehubah luaran juga boleh diubahsuai menggunakan lulus alamat. Fungsi boleh mempunyai atau tidak mempunyai nilai pulangan, dan jenis nilai pulangan mestilah selaras dengan perisytiharan. Penamaan fungsi harus jelas dan mudah difahami, menggunakan nomenclature unta atau garis bawah. Ikuti prinsip tanggungjawab tunggal dan pastikan kesederhanaan fungsi untuk meningkatkan kebolehkerjaan dan kebolehbacaan.

Definisi nama fungsi bahasa C termasuk: jenis nilai pulangan, nama fungsi, senarai parameter dan badan fungsi. Nama fungsi harus jelas, ringkas dan bersatu dalam gaya untuk mengelakkan konflik dengan kata kunci. Nama fungsi mempunyai skop dan boleh digunakan selepas pengisytiharan. Penunjuk fungsi membolehkan fungsi diluluskan atau ditugaskan sebagai hujah. Kesalahan umum termasuk konflik penamaan, ketidakcocokan jenis parameter, dan fungsi yang tidak diisytiharkan. Pengoptimuman prestasi memberi tumpuan kepada reka bentuk dan pelaksanaan fungsi, sementara kod yang jelas dan mudah dibaca adalah penting.

F Fungsi bahasa adalah blok kod yang boleh diguna semula. Mereka menerima input, melakukan operasi, dan hasil pulangan, yang secara modular meningkatkan kebolehgunaan dan mengurangkan kerumitan. Mekanisme dalaman fungsi termasuk parameter lulus, pelaksanaan fungsi, dan nilai pulangan. Seluruh proses melibatkan pengoptimuman seperti fungsi dalam talian. Fungsi yang baik ditulis mengikut prinsip tanggungjawab tunggal, bilangan parameter kecil, penamaan spesifikasi, dan pengendalian ralat. Penunjuk yang digabungkan dengan fungsi dapat mencapai fungsi yang lebih kuat, seperti mengubahsuai nilai pembolehubah luaran. Pointer fungsi meluluskan fungsi sebagai parameter atau alamat kedai, dan digunakan untuk melaksanakan panggilan dinamik ke fungsi. Memahami ciri dan teknik fungsi adalah kunci untuk menulis program C yang cekap, boleh dipelihara, dan mudah difahami.
