Kalkulator Pembagian Bersusun CRC / XOR / Modulo-2
Kalkulator Pembagian Bersusun CRC / XOR / Modulo-2
Output: CRC remainder after XOR long division.
Kalkulator Pembagian Bersusun CRC / XOR / Modulo-2 melakukan pembagian biner tanpa carry atau borrow, menggunakan XOR bitwise di setiap langkah. Ini aritmetika di balik cyclic redundancy check (CRC): pesan dilampirkan dengan bit nol dan dibagi polinomial generator, dan sisa menjadi checksum CRC. Karena penjumlahan dan pengurangan modulo-2 keduanya hanya XOR, setiap langkah adalah perbandingan bit sederhana. Masukkan kata data dan generator (pembagi) untuk melihat setiap penyelarasan, setiap XOR, dan sisa akhir yang digunakan sebagai CRC.
Cara menggunakan Kalkulator CRC / XOR / Modulo-2
Untuk menghitung CRC dengan pembagian modulo-2, ikuti 4 langkah berikut:
- Masukkan pesan biner (bit data) di kolom pertama.
- Masukkan polinomial generator sebagai bit biner di kolom kedua.
- Kalkulator melampirkan (n − 1) bit nol, di mana n adalah panjang generator.
- Klik Hitung untuk XOR pesan ke bawah dan baca sisa sebagai CRC.
Hasil bagi biasanya dibuang dalam pekerjaan CRC — sisa adalah checksum yang dilampirkan ke pesan sebelum transmisi.
CRC dan aritmetika modulo-2
Cyclic redundancy check mendeteksi kesalahan transmisi dengan memperlakukan pesan sebagai polinomial biner besar dan membagi dengan polinomial generator yang disepakati. Pembagian dilakukan dalam aritmetika modulo-2 (GF(2)), di mana penjumlahan dan pengurangan identik dan sama dengan XOR — tidak ada carry atau borrow. Sisa dari pembagian ini adalah CRC. Ketika penerima membagi pesan plus CRC dengan generator yang sama, sisa 0 berarti tidak ada kesalahan terdeteksi. Kalkulator ini mereproduksi proses bitwise persis itu.
Pembagian membagi total menjadi kelompok sama besar. Pembagian bersusun melakukannya digit demi digit.
Pembagi (32) — bilangan pembagi. Letakkan di kiri kurung.
Cara kerja pembagian CRC modulo-2
Kalkulator menghitung CRC melalui lima tindakan internal:
- Melampirkan (n − 1) bit nol ke pesan, di mana n adalah jumlah bit generator.
- Menyelaraskan generator di bawah bit 1 paling kiri sisa saat ini.
- Melakukan XOR generator ke bit tersebut (pengurangan modulo-2 tanpa borrow).
- Menggeser ke bit 1 berikutnya dan mengulangi penyelarasan XOR.
- Berhenti ketika bit tersisa lebih sedikit dari generator; bit itulah CRC.
Setiap bit hasil bagi adalah 1 di mana generator di-XOR masuk dan 0 di tempat lain, tetapi untuk CRC hanya sisa akhir yang penting.
Melampirkan (n − 1) bit nol ke pesan, di mana n adalah jumlah bit generator.
Rumus pembagian CRC
Kalkulator CRC / XOR / Modulo-2 menghitung CRC = (M(x) · xⁿ⁻¹) mod G(x) dalam GF(2), di mana M(x) adalah pesan, G(x) adalah generator n bit, dan semua penjumlahan adalah XOR. Frame yang ditransmisikan adalah M(x)·xⁿ⁻¹ + CRC, yang G(x) bagi tepat. Di sisi penerima, sisa nol mengonfirmasi integritas.
Contoh soal CRC / XOR
Contoh berikut menunjukkan pembagian modulo-2 dengan XOR di setiap langkah.
Contoh 1 — Pesan 1101, generator 101
- Panjang generator 3, jadi lampirkan 2 nol: 1101 menjadi 110100.
- XOR 101 ke bit awal berulang: 110100 → 011100 → 001000 → 000010.
- 2 bit terakhir, 10, adalah sisa CRC.
Contoh 2 — Mengapa pengurangan adalah XOR
- Dalam modulo-2, 1 + 1 = 0 dan 1 − 1 = 0, jadi penjumlahan dan pengurangan operasi yang sama.
- Operasi itu persis XOR bitwise, tanpa carry atau borrow.
- Jadi setiap langkah pembagian adalah satu XOR generator ke bit saat ini.
Contoh 3 — Pemeriksaan penerima
- Lampirkan CRC ke pesan dan bagi dengan generator yang sama.
- XOR ke bawah persis seperti sebelumnya.
- Sisa 0 berarti tidak ada kesalahan terdeteksi.
Panjang generator 3, jadi lampirkan 2 nol: 1101 menjadi 110100. XOR 101 ke bit awal berulang: 110100 → 011100 → 001000 → 000010. 2 bit terakhir, 10, adalah sisa CRC.
Dalam modulo-2, 1 + 1 = 0 dan 1 − 1 = 0, jadi penjumlahan dan pengurangan operasi yang sama. Operasi itu persis XOR bitwise, tanpa carry atau borrow. Jadi setiap langkah pembagian adalah satu XOR generator ke bit saat ini.
Lampirkan CRC ke pesan dan bagi dengan generator yang sama. XOR ke bawah persis seperti sebelumnya. Sisa 0 berarti tidak ada kesalahan terdeteksi.
Soal CRC yang dikerjakan
Bagaimana cara menghitung CRC dari 10110 dengan generator 1011?
Lampirkan 3 nol (panjang generator 4) untuk mendapatkan 10110000, lalu XOR ke bawah. Selaraskan 1011 di bawah setiap 1 awal dan XOR: 10110000 → 00100000 → setelah XOR berurutan 3 bit terakhir membentuk sisa CRC. Sisa kemudian dilampirkan ke 10110 sehingga frame penuh habis dibagi 1011 tanpa sisa.
Mengapa sisa nol berarti data utuh?
Pengirim memilih CRC sehingga frame yang ditransmisikan adalah kelipatan tepat generator. Kelipatan G(x) dibagi G(x) meninggalkan sisa 0. Jika bit berubah saat transit, frame biasanya bukan kelipatan lagi, sehingga pembagian penerima meninggalkan sisa bukan nol, menandai kesalahan.
Kesalahan CRC / modulo-2 yang umum
Pembagian CRC modulo-2 menghasilkan 5 kesalahan yang sering:
- Menggunakan pengurangan biner biasa dengan borrow alih-alih XOR.
- Melampirkan jumlah bit nol yang salah (harus panjang generator minus satu).
- Menyelaraskan generator di bawah bit 0 alih-alih bit 1 awal.
- Memperlakukan carry seolah-olah ada dalam aritmetika GF(2).
- Melaporkan hasil bagi sebagai CRC alih-alih sisa.
Kalkulator CRC / XOR / Modulo-2 melakukan XOR di setiap langkah, melampirkan nol yang benar, dan mengembalikan sisa sebagai checksum.
Pertanyaan umum
Apa pembagian modulo-2?
Apa pembagian modulo-2?
Bagaimana CRC dihitung?
Mengapa XOR digunakan alih-alih pengurangan normal?
Berapa banyak bit nol yang dilampirkan ke pesan?
Bagaimana penerima memeriksa CRC?
Apakah hasil bagi penting dalam CRC?
Apa polinomial generator?
Identitas CRC
Kalkulator CRC / XOR / Modulo-2 menggunakan CRC = (M(x)·xⁿ⁻¹) mod G(x) dalam GF(2), sehingga frame yang ditransmisikan M(x)·xⁿ⁻¹ + CRC habis dibagi G(x). Karena kelipatan generator meninggalkan sisa 0, pembagian modulo-2 penerima mengembalikan 0 ketika data utuh.