Pariti (parity) menambah satu bit tambahan pada setiap kumpulan bit supaya bilangan 1 sentiasa genap (pariti genap) atau sentiasa ganjil (pariti ganjil). Penerima mengira semula 1. Jika kiraan mempunyai pariti yang salah, ralat telah berlaku.
Pelajaran ini membina atas pemindahan bersiri dan selari dan corak binari daripada perwakilan nombor dan teks.
Bagaimanakah bit pariti dikira?
- Kira 1 dalam bit data.
- Untuk pariti genap, jadikan jumlah genap. Jika kiraan ganjil, bit pariti ialah 1. Jika genap, bit pariti ialah 0.
- Untuk pariti ganjil, jadikan jumlah ganjil. Jika kiraan genap, bit pariti ialah 1. Jika ganjil, bit pariti ialah 0.
- Lekatkan bit pariti pada data. Persetujuan awal tentang kedudukannya diperlukan, dan dalam pelajaran ini ia diletakkan di hujung.
Contoh berlangkah
Hantar corak 7 bit 1011001 menggunakan pariti genap.
Langkah 1, kira. Bitnya ialah 1,0,1,1,0,0,1. Bilangan 1 ialah 4.
Langkah 2, tentukan. 4 sudah genap, jadi bit pariti ialah 0.
Langkah 3, hantar. Bait yang dihantar ialah 10110010.
Langkah 4, terima tanpa ralat. Penerima mengira 1 dalam 10110010 dan mendapat 4 lagi, iaitu genap. Semakan lulus.
Langkah 5, satu bit berubah. Andaikan bait tiba sebagai 10010010. Bilangan 1 kini 3, iaitu ganjil, jadi penerima melaporkan ralat.
Berikut pengiraan yang sama dalam pseudokod gaya Cambridge untuk 7 bit data:
count ← 0
FOR i ← 1 TO 7
IF Bits[i] = 1 THEN
count ← count + 1
ENDIF
NEXT i
IF count MOD 2 = 0 THEN
parity ← 0
ELSE
parity ← 1
ENDIF
Jejak untuk 1011001: selepas i=1 count ialah 1, i=2 kekal 1, i=3 menjadi 2, i=4 menjadi 3, i=5 kekal 3, i=6 kekal 3, i=7 menjadi 4. Kemudian 4 MOD 2 = 0, jadi parity = 0. Ini sepadan dengan kiraan tangan.
Apakah kesilapan yang dilakukan pelajar?
Kesimpulan lazim: “Semakan pariti lulus, jadi data betul.”
Ini tidak selamat. Ambil bait 10110010 di atas dan ubah dua bit, iaitu kedua dan keempat, menjadi 11100010. Bilangan 1 masih 4, jadi semakan lulus walaupun data salah. Pembetulannya, tulis: “Semakan pariti lulus, jadi tiada ralat dikesan, tetapi bilangan bit genap yang berubah masih boleh tersembunyi.”
Semak kendiri
1. Cari bit pariti genap bagi 1110110.
Lihat jawapan
Bilangan 1: 1,1,1,0,1,1,0 ialah 5. Lima ialah ganjil, jadi bit pariti mestilah 1. Bait penuh ialah 11101101, yang mempunyai 6 satu, nombor genap.
2. Pariti ganjil digunakan. Satu bait tiba sebagai 01100110. Adakah ralat dikesan?
Lihat jawapan
Bilangan 1: 0,1,1,0,0,1,1,0 ialah 4, iaitu genap. Pariti ganjil memerlukan kiraan ganjil, jadi ralat dikesan.
3. Terangkan mengapa dua bit yang berubah mungkin tidak dikesan.
Lihat jawapan
Setiap perubahan mengubah bilangan 1 sebanyak satu. Dua perubahan boleh saling membatalkan, jadi kiraan mempunyai pariti yang sama dan semakan kelihatan lulus.
Ke mana selepas ini?
Pariti ialah semakan paling mudah. Pelajaran seterusnya melihat hasil tambah semak (checksum) yang meliputi seluruh blok data. Anda boleh menguji pengiraan dalam set latihan atau menjejak gelung di atas dalam pelatih jejak pseudokod terhad.
Jika pengiraan anda tepat tetapi perkataan penerangan masih menjejaskan markah, guru kami boleh membantu dalam tuisyen Computer Science satu dengan satu dalam talian.