Kalkulator Bahagi Panjang CRC / XOR / Modulo-2
Kalkulator Bahagi Panjang CRC / XOR / Modulo-2
Output: CRC remainder after XOR long division.
Kalkulator Bahagi Panjang CRC / XOR / Modulo-2 melakukan pembahagian perduaan tanpa carry atau borrow, menggunakan XOR bitwise pada setiap langkah. Ini aritmetik di sebalik cyclic redundancy check (CRC): mesej dilampirkan dengan bit sifar dan dibahagikan polinomial penjana, dan baki menjadi checksum CRC. Kerana penambahan dan penolakan modulo-2 kedua-duanya hanya XOR, setiap langkah ialah perbandingan bit mudah. Masukkan perkataan data dan penjana (pembahagi) untuk melihat setiap penjajaran, setiap XOR, dan baki akhir digunakan sebagai CRC.
Cara menggunakan Kalkulator CRC / XOR / Modulo-2
Untuk mengira CRC dengan bahagi modulo-2, ikuti 4 langkah berikut:
- Masukkan mesej perduaan (bit data) dalam medan pertama.
- Masukkan polinomial penjana sebagai bit perduaan dalam medan kedua.
- Kalkulator melampirkan (n − 1) bit sifar, di mana n ialah panjang penjana.
- Klik Kira untuk XOR mesej ke bawah dan baca baki sebagai CRC.
Hasil bahagi biasanya dibuang dalam kerja CRC — baki ialah checksum yang dilampirkan ke mesej sebelum penghantaran.
CRC dan aritmetik modulo-2
Cyclic redundancy check mengesan ralat penghantaran dengan memperlakukan mesej sebagai polinomial perduaan besar dan membahagikannya dengan polinomial penjana yang dipersetujui. Pembahagian dilakukan dalam aritmetik modulo-2 (GF(2)), di mana penambahan dan penolakan identik dan sama dengan XOR — tiada carry atau borrow. Baki dari pembahagian ini ialah CRC. Apabila penerima membahagikan mesej tambah CRC dengan penjana yang sama, baki 0 bermakna tiada ralat dikesan. Kalkulator ini menghasilkan semula proses bitwise tepat itu.
Pembahagian mengagihkan jumlah kepada kumpulan sama rata. Bahagi panjang melakukannya digit demi digit.
Pembahagi (32) — nombor yang anda gunakan untuk membahagi. Letakkannya di kiri kurungan.
Cara bahagi CRC modulo-2 berfungsi
Kalkulator mengira CRC melalui lima tindakan dalaman:
- Melampirkan (n − 1) bit sifar ke mesej, di mana n ialah bilangan bit penjana.
- Menyelaraskan penjana di bawah bit 1 paling kiri baki semasa.
- Melakukan XOR penjana ke bit tersebut (penolakan modulo-2 tanpa borrow).
- Menganjak ke bit 1 seterusnya dan mengulangi penjajaran XOR.
- Berhenti apabila bit tinggal lebih sedikit daripada penjana; bit itulah CRC.
Setiap bit hasil bahagi ialah 1 di mana penjana di-XOR masuk dan 0 di tempat lain, tetapi untuk CRC hanya baki akhir yang penting.
Melampirkan (n − 1) bit sifar ke mesej, di mana n ialah bilangan bit penjana.
Formula bahagi CRC
Kalkulator CRC / XOR / Modulo-2 mengira CRC = (M(x) · xⁿ⁻¹) mod G(x) dalam GF(2), di mana M(x) ialah mesej, G(x) ialah penjana n bit, dan semua penambahan ialah XOR. Rangka dihantar ialah M(x)·xⁿ⁻¹ + CRC, yang G(x) bahagikan tepat. Di sisi penerima, baki sifar mengesahkan integriti.
Contoh soalan CRC / XOR
Contoh berikut menunjukkan bahagi modulo-2 dengan XOR pada setiap langkah.
Contoh 1 — Mesej 1101, penjana 101
- Panjang penjana 3, jadi lampirkan 2 sifar: 1101 menjadi 110100.
- XOR 101 ke bit awal berulang: 110100 → 011100 → 001000 → 000010.
- 2 bit terakhir, 10, ialah baki CRC.
Contoh 2 — Mengapa penolakan ialah XOR
- Dalam modulo-2, 1 + 1 = 0 dan 1 − 1 = 0, jadi tambah dan tolak operasi sama.
- Operasi itu tepat XOR bitwise, tanpa carry atau borrow.
- Jadi setiap langkah bahagi ialah satu XOR penjana ke bit semasa.
Contoh 3 — Semakan penerima
- Lampirkan CRC ke mesej dan bahagi dengan penjana yang sama.
- XOR ke bawah tepat seperti sebelum.
- Baki 0 bermakna tiada ralat dikesan.
Panjang penjana 3, jadi lampirkan 2 sifar: 1101 menjadi 110100. XOR 101 ke bit awal berulang: 110100 → 011100 → 001000 → 000010. 2 bit terakhir, 10, ialah baki CRC.
Dalam modulo-2, 1 + 1 = 0 dan 1 − 1 = 0, jadi tambah dan tolak operasi sama. Operasi itu tepat XOR bitwise, tanpa carry atau borrow. Jadi setiap langkah bahagi ialah satu XOR penjana ke bit semasa.
Lampirkan CRC ke mesej dan bahagi dengan penjana yang sama. XOR ke bawah tepat seperti sebelum. Baki 0 bermakna tiada ralat dikesan.
Soalan CRC yang dikerjakan
Bagaimana anda kira CRC 10110 dengan penjana 1011?
Lampirkan 3 sifar (panjang penjana 4) untuk dapat 10110000, kemudian XOR ke bawah. Selaraskan 1011 di bawah setiap 1 awal dan XOR: 10110000 → 00100000 → selepas XOR berturut 3 bit terakhir membentuk baki CRC. Baki kemudian dilampirkan ke 10110 supaya rangka penuh habis dibahagi 1011 tanpa baki.
Mengapa baki sifar bermakna data utuh?
Penghantar memilih CRC supaya rangka dihantar ialah gandaan tepat penjana. Gandaan G(x) dibahagi G(x) meninggalkan baki 0. Jika bit berubah semasa transit, rangka biasanya bukan gandaan lagi, jadi bahagi penerima meninggalkan baki bukan sifar, menandakan ralat.
Kesilapan CRC / modulo-2 yang biasa
Bahagi CRC modulo-2 menghasilkan 5 ralat yang kerap:
- Menggunakan penolakan perduaan biasa dengan borrow daripada XOR.
- Melampirkan bilangan bit sifar yang salah (mesti panjang penjana tolak satu).
- Menyelaraskan penjana di bawah bit 0 daripada bit 1 awal.
- Memperlakukan carry seolah-olah wujud dalam aritmetik GF(2).
- Melaporkan hasil bahagi sebagai CRC daripada baki.
Kalkulator CRC / XOR / Modulo-2 melakukan XOR pada setiap langkah, melampirkan sifar betul, dan mengembalikan baki sebagai checksum.
Soalan lazim
Apakah bahagi modulo-2?
Apakah bahagi modulo-2?
Bagaimana CRC dikira?
Mengapa XOR digunakan daripada penolakan normal?
Berapa banyak bit sifar saya lampirkan ke mesej?
Bagaimana penerima semak CRC?
Adakah hasil bahagi penting dalam CRC?
Apakah polinomial penjana?
Identiti CRC
Kalkulator CRC / XOR / Modulo-2 menggunakan CRC = (M(x)·xⁿ⁻¹) mod G(x) dalam GF(2), jadi rangka dihantar M(x)·xⁿ⁻¹ + CRC habis dibahagi G(x). Kerana gandaan penjana meninggalkan baki 0, bahagi modulo-2 penerima mengembalikan 0 apabila data utuh.