Skip to content

CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর

CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর

CRC / XOR calculator: enter message bits and generator poly for modulo-2 division.

Output: CRC remainder after XOR long division.

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) ঠিকভাবে ভাগ করে। গ্রহণে, শূন্য ভাগশেষ সঙ্গতি নিশ্চিত করে।

110100111 = 1011 × 108902 + 189 → অভেদ সত্য

CRC / XOR উদাহরণ সমস্যা

এই উদাহরণগুলো প্রতিটি ধাপে XOR সহ modulo-2 ভাগ দেখায়।

উদাহরণ ১ — বার্তা 1101, generator 101

  1. Generator দৈর্ঘ্য 3, তাই 2 শূন্য যোগ: 1101 → 110100।
  2. 101 বারবার leading বিটে XOR: 110100 → 011100 → 001000 → 000010।
  3. শেষ 2 বিট 10 CRC ভাগশেষ।

উদাহরণ ২ — বিয়োগ কেন XOR

  1. Modulo-2-তে, 1 + 1 = 0 এবং 1 − 1 = 0, তাই যোগ ও বিয়োগ একই।
  2. সেই কাজ bitwise XOR, carry বা borrow ছাড়া।
  3. তাই প্রতিটি ভাগ ধাপ বর্তমান বিটে generator-এর এক XOR।

উদাহরণ ৩ — গ্রহীতা যাচাই

  1. CRC বার্তায় যোগ করে একই generator দিয়ে ভাগ করুন।
  2. আগের মতো XOR নামান।
  3. ভাগশেষ 0 মানে কোনো ত্রুটি ধরা পড়েনি।
Generator দৈর্ঘ্য 3, তাই 2 শূন্য যোগ: 1101 → 110100।
101 বারবার leading বিটে XOR: 110100 → 011100 → 001000 → 000010।
শেষ 2 বিট 10 CRC ভাগশেষ।

সমাধানিত CRC সমস্যা

Generator 1011 দিয়ে 10110-এর CRC কীভাবে গণনা করবেন?

3টি শূন্য যোগ (generator দৈর্ঘ্য 4) → 10110000, তারপর XOR নামান। প্রতিটি leading 1-এ 1011 সারিবদ্ধ করে XOR: 10110000 → 00100000 → … চূড়ান্ত 3 বিট CRC ভাগশেষ। ভাগশেষ 10110-এ যোগ করে পূর্ণ ফ্রেম 1011 দিয়ে ভাগশেষ ছাড়া ভাগযোগ্য।

1101001111011

শূন্য ভাগশেষ ডেটা অক্ষত মানে কেন?

প্রেরক CRC বেছে নেয় যাতে প্রেরিত ফ্রেম generator-এর exact গুণিতক। G(x)-এর যেকোনো গুণিতক G(x) দিয়ে ভাগ করলে ভাগশেষ 0। পথে বিট উল্টালে ফ্রেম সাধারণত গুণিতক থাকে না, তাই গ্রহীতার ভাগ অ-শূন্য ভাগশেষ, ত্রুটি সংকেত।

1010111

CRC / modulo-2 সাধারণ ভুল

Modulo-2 CRC ভাগে ৫টি ঘন ঘন ত্রুটি:

  • Borrow সহ সাধারণ বাইনারি বিয়োগ XOR-এর পরিবর্তে।
  • ভুল সংখ্যক শূন্য বিট যোগ (generator দৈর্ঘ্য − 1 হতে হবে)।
  • Leading 1-এর পরিবর্তে 0 বিটের নিচে generator সারিবদ্ধ।
  • GF(2) গাণিতিকে carry আছে ধরে নেওয়া।
  • ভাগশেষের পরিবর্তে ভাগফল CRC হিসেবে জানানো।

CRC / XOR / Modulo-2 দীর্ঘ ভাগ ক্যালকুলেটর প্রতিটি ধাপে XOR করে, সঠিক শূন্য যোগ করে এবং ভাগশেষ চেকসাম হিসেবে দেয়।

Borrow সহ সাধারণ বাইনারি বিয়োগ XOR-এর পরিবর্তে।
ভুল সংখ্যক শূন্য বিট যোগ (generator দৈর্ঘ্য − 1 হতে হবে)।
Leading 1-এর পরিবর্তে 0 বিটের নিচে generator সারিবদ্ধ।
GF(2) গাণিতিকে carry আছে ধরে নেওয়া।
ভাগশেষের পরিবর্তে ভাগফল CRC হিসেবে জানানো।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

Modulo-2 ভাগ কী?

Modulo-2 ভাগ কী?

GF(2)-এ বাইনারি ভাগ, যোগ ও বিয়োগ উভয় XOR, carry/borrow নেই। প্রতিটি ধাপ leading বিট 1 হলে generator XOR।

CRC কীভাবে গণনা হয়?

বার্তায় (generator দৈর্ঘ্য − 1) শূন্য বিট যোগ, তারপর modulo-2 (XOR) দীর্ঘ ভাগে generator দিয়ে ভাগ। ভাগশেষ CRC চেকসাম।

সাধারণ বিয়োগের পরিবর্তে XOR কেন?

Modulo-2-তে 1 + 1 = 0, carry নেই, তাই যোগ = বিয়োগ = XOR। প্রতিটি ভাগ ধাপ এক bitwise XOR।

কত শূন্য বিট যোগ করব?

Generator বিট সংখ্যার এক কম। 4-বিট generator = 3 শূন্য, CRC ভাগশেষের জায়গা।

গ্রহীতা CRC কীভাবে যাচাই?

বার্তা + CRC একই generator দিয়ে modulo-2 ভাগ। ভাগশেষ 0 = ত্রুটি নেই; অ-শূন্য = ক্ষতি।

CRC-এ ভাগফল গুরুত্বপূর্ণ?

না। CRC-এ শুধু ভাগশেষ চেকসাম। ভাগফল সাধারণত বাতিল।

Generator বহুপদ কী?

সম্মত বাইনারি ভাজক, যেমন x³ + x + 1 (1011)। প্রেরক ও গ্রহীতা একই 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 দেয়।