CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর
CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর
Output: CRC remainder after XOR long division.
CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর carry বা borrow ছাড়া, প্রতিটি ধাপে bitwise XOR ব্যবহার করে বাইনারি ভাগ করে। এটি চক্রীয় redundancy check (CRC)-এর পেছনের গণিত: বার্তায় শূন্য বিট যোগ করে generator বহুপদ দিয়ে ভাগ করা হয়, এবং ভাগশেষ CRC চেকসাম হয়। Modulo-2 যোগ ও বিয়োগ উভয়ই XOR, তাই প্রতিটি ধাপ সহজ বিট তুলনা। ডেটা শব্দ ও generator (ভাজক) লিখে প্রতিটি alignment, প্রতিটি XOR ও CRC হিসেবে ব্যবহৃত চূড়ান্ত ভাগশেষ দেখুন।
CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর কীভাবে ব্যবহার করবেন
Modulo-2 ভাগ দিয়ে CRC গণনা করতে, এই ৪টি ধাপ অনুসরণ করুন:
- প্রথম ঘরে বাইনারি বার্তা (ডেটা বিট) লিখুন।
- দ্বিতীয় ঘরে generator বহুপদ বাইনারি বিট হিসেবে লিখুন।
- ক্যালকুলেটর (n − 1)টি শূন্য বিট যোগ করে, যেখানে n generator-এর দৈর্ঘ্য।
- গণনা করুন-এ ক্লিক করে বার্তায় XOR নামান এবং ভাগশেষ CRC হিসেবে পড়ুন।
CRC কাজে ভাগফল সাধারণত বাতিল — ভাগশেষই চেকসাম, যা প্রেরণের আগে বার্তায় যোগ হয়।
CRC ও modulo-2 গাণিতিক
চক্রীয় redundancy check প্রেরণ ত্রুটি ধরতে বার্তাকে বড় বাইনারি বহুপদ হিসেবে দেখে এবং সম্মত generator বহুপদ দিয়ে ভাগ করে। ভাগ modulo-2 (GF(2)) গাণিতিকে করা হয়, যেখানে যোগ ও বিয়োগ একই এবং XOR — carry বা borrow নেই। এই ভাগের ভাগশেষ CRC। গ্রহীতা বার্তা + CRC একই generator দিয়ে ভাগ করলে, ভাগশেষ 0 মানে কোনো ত্রুটি ধরা পড়েনি। এই ক্যালকুলেটর সেই bitwise প্রক্রিয়া পুনরুৎপাদন করে।
ভাগ একটি মোটকে সমান দলে ভাগ করে। দীর্ঘ ভাগ এটি অঙ্ক ধরে ধরে করে।
ভাজক (32) — যে সংখ্যা দিয়ে আপনি ভাগ করেন। এটি ব্র্যাকেটের বাঁ দিকে রাখুন।
Modulo-2 CRC ভাগ কীভাবে কাজ করে
ক্যালকুলেটর পাঁচটি অভ্যন্তরীণ কাজে CRC গণনা করে:
- বার্তায় (n − 1)টি শূন্য বিট যোগ করে, n = generator বিট সংখ্যা।
- Generator বর্তমান ভাগশেষের বামতম 1 বিটের নিচে সারিবদ্ধ করে।
- সেই বিটগুলোতে generator XOR করে (borrow ছাড়া modulo-2 বিয়োগ)।
- পরের leading 1 বিটে সরে XOR alignment পুনরাবৃত্তি করে।
- বাকি বিট generator-এর চেয়ে কম হলে থামে; সেই বিটগুলো CRC।
প্রতিটি ভাগফল বিট 1 যেখানে generator XOR হয়, 0 অন্যত্র; CRC-এর জন্য শুধু চূড়ান্ত ভাগশেষ গুরুত্বপূর্ণ।
বার্তায় (n − 1)টি শূন্য বিট যোগ করে, n = generator বিট সংখ্যা।
CRC ভাগের সূত্র
CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর GF(2)-এ CRC = (M(x) · xⁿ⁻¹) mod G(x) গণনা করে, যেখানে M(x) বার্তা, G(x) n-বিট generator, সব যোগ XOR। প্রেরিত ফ্রেম M(x)·xⁿ⁻¹ + CRC, যা G(x) ঠিকভাবে ভাগ করে। গ্রহণে, শূন্য ভাগশেষ সঙ্গতি নিশ্চিত করে।
CRC / XOR উদাহরণ সমস্যা
এই উদাহরণগুলো প্রতিটি ধাপে XOR সহ modulo-2 ভাগ দেখায়।
উদাহরণ ১ — বার্তা 1101, generator 101
- Generator দৈর্ঘ্য 3, তাই 2 শূন্য যোগ: 1101 → 110100।
- 101 বারবার leading বিটে XOR: 110100 → 011100 → 001000 → 000010।
- শেষ 2 বিট 10 CRC ভাগশেষ।
উদাহরণ ২ — বিয়োগ কেন XOR
- Modulo-2-তে, 1 + 1 = 0 এবং 1 − 1 = 0, তাই যোগ ও বিয়োগ একই।
- সেই কাজ bitwise XOR, carry বা borrow ছাড়া।
- তাই প্রতিটি ভাগ ধাপ বর্তমান বিটে generator-এর এক XOR।
উদাহরণ ৩ — গ্রহীতা যাচাই
- CRC বার্তায় যোগ করে একই generator দিয়ে ভাগ করুন।
- আগের মতো XOR নামান।
- ভাগশেষ 0 মানে কোনো ত্রুটি ধরা পড়েনি।
Generator দৈর্ঘ্য 3, তাই 2 শূন্য যোগ: 1101 → 110100। 101 বারবার leading বিটে XOR: 110100 → 011100 → 001000 → 000010। শেষ 2 বিট 10 CRC ভাগশেষ।
Modulo-2-তে, 1 + 1 = 0 এবং 1 − 1 = 0, তাই যোগ ও বিয়োগ একই। সেই কাজ bitwise XOR, carry বা borrow ছাড়া। তাই প্রতিটি ভাগ ধাপ বর্তমান বিটে generator-এর এক XOR।
CRC বার্তায় যোগ করে একই generator দিয়ে ভাগ করুন। আগের মতো XOR নামান। ভাগশেষ 0 মানে কোনো ত্রুটি ধরা পড়েনি।
সমাধানিত CRC সমস্যা
Generator 1011 দিয়ে 10110-এর CRC কীভাবে গণনা করবেন?
3টি শূন্য যোগ (generator দৈর্ঘ্য 4) → 10110000, তারপর XOR নামান। প্রতিটি leading 1-এ 1011 সারিবদ্ধ করে XOR: 10110000 → 00100000 → … চূড়ান্ত 3 বিট CRC ভাগশেষ। ভাগশেষ 10110-এ যোগ করে পূর্ণ ফ্রেম 1011 দিয়ে ভাগশেষ ছাড়া ভাগযোগ্য।
শূন্য ভাগশেষ ডেটা অক্ষত মানে কেন?
প্রেরক CRC বেছে নেয় যাতে প্রেরিত ফ্রেম generator-এর exact গুণিতক। G(x)-এর যেকোনো গুণিতক G(x) দিয়ে ভাগ করলে ভাগশেষ 0। পথে বিট উল্টালে ফ্রেম সাধারণত গুণিতক থাকে না, তাই গ্রহীতার ভাগ অ-শূন্য ভাগশেষ, ত্রুটি সংকেত।
CRC / modulo-2 সাধারণ ভুল
Modulo-2 CRC ভাগে ৫টি ঘন ঘন ত্রুটি:
- Borrow সহ সাধারণ বাইনারি বিয়োগ XOR-এর পরিবর্তে।
- ভুল সংখ্যক শূন্য বিট যোগ (generator দৈর্ঘ্য − 1 হতে হবে)।
- Leading 1-এর পরিবর্তে 0 বিটের নিচে generator সারিবদ্ধ।
- GF(2) গাণিতিকে carry আছে ধরে নেওয়া।
- ভাগশেষের পরিবর্তে ভাগফল CRC হিসেবে জানানো।
CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর প্রতিটি ধাপে XOR করে, সঠিক শূন্য যোগ করে এবং ভাগশেষ চেকসাম হিসেবে দেয়।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Modulo-2 ভাগ কী?
Modulo-2 ভাগ কী?
CRC কীভাবে গণনা হয়?
সাধারণ বিয়োগের পরিবর্তে XOR কেন?
কত শূন্য বিট যোগ করব?
গ্রহীতা CRC কীভাবে যাচাই?
CRC-এ ভাগফল গুরুত্বপূর্ণ?
Generator বহুপদ কী?
CRC পরিচয়
CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর GF(2)-এ CRC = (M(x)·xⁿ⁻¹) mod G(x) ব্যবহার করে, তাই প্রেরিত ফ্রেম M(x)·xⁿ⁻¹ + CRC G(x) দিয়ে ঠিকভাবে ভাগযোগ্য। Generator-এর গুণিতকের ভাগশেষ 0, তাই ডেটা অক্ষত থাকলে গ্রহীতার modulo-2 ভাগ 0 দেয়।