সিআরসি 32 এর বহুপদীটি হ'ল:
এক্স 32 + এক্স 26 + এক্স 23 + এক্স 22 + এক্স 16 + এক্স 12 + এক্স 11 + এক্স 10 + এক্স 8 + এক্স 7 + এক্স 5 + এক্স 4 + এক্স 2 + এক্স + 1
বা হেক্স এবং বাইনারি মধ্যে:
0x 01 04 C1 1D বি 7
1 0000 0100 1100 0001 0001 1101 1011 0111
সর্বোচ্চ শব্দটি (x 32 ) সাধারণত স্পষ্টভাবে লিখিত হয় না, সুতরাং এটি পরিবর্তে ঠিক হেক্সে উপস্থাপন করা যেতে পারে
0x 04 সি 1 1 ডি বি 7
1 এবং 0 এর গণনা নির্দ্বিধায় মনে হয় তবে আপনি দেখতে পাবেন যে সেগুলি বহুবর্ষের সাথে মিলছে, যেখানে 1
বিট 0 (বা প্রথম বিট) এবং x
বিট 1 (বা দ্বিতীয় বিট) রয়েছে।
কেন এই বহুপদী? কারণ সেখানে একটি বহির্ভুত প্রদত্ত একটি স্ট্যান্ডার্ড থাকা দরকার এবং স্ট্যান্ডার্ডটি আইইইই 802.3 দ্বারা সেট করা হয়েছিল। এছাড়াও এমন একটি বহুপদী খুঁজে পাওয়া অত্যন্ত কঠিন যা কার্যকরভাবে বিভিন্ন বিট ত্রুটিগুলি সনাক্ত করে।
আপনি সিআরসি -32 কে "বাইনারি অ্যারিমেটিক উইথ নো ক্যারি" সিরিজ হিসাবে ভাবতে পারেন বা মূলত "এক্সওআর এবং শিফট অপারেশনস"। একে প্রযুক্তিগতভাবে বহুভুজ সংক্রান্ত গাণিতিক বলা হয়।
এটি আরও ভালভাবে বুঝতে, এই গুণটির কথা ভাবুন:
(x^3 + x^2 + x^0)(x^3 + x^1 + x^0)
= (x^6 + x^4 + x^3
+ x^5 + x^3 + x^2
+ x^3 + x^1 + x^0)
= x^6 + x^5 + x^4 + 3*x^3 + x^2 + x^1 + x^0
যদি আমরা ধরে নিই যে x 2 বেস 2 তখন আমরা পাই:
x^7 + x^3 + x^2 + x^1 + x^0
কেন? কারণ 3x ^ 3 হ'ল 11x ^ 11 (তবে আমাদের কেবল 1 বা 0 প্রাক সংখ্যা প্রয়োজন) তাই আমরা বহন করবো:
=1x^110 + 1x^101 + 1x^100 + 11x^11 + 1x^10 + 1x^1 + x^0
=1x^110 + 1x^101 + 1x^100 + 1x^100 + 1x^11 + 1x^10 + 1x^1 + x^0
=1x^110 + 1x^101 + 1x^101 + 1x^11 + 1x^10 + 1x^1 + x^0
=1x^110 + 1x^110 + 1x^11 + 1x^10 + 1x^1 + x^0
=1x^111 + 1x^11 + 1x^10 + 1x^1 + x^0
তবে গণিতবিদরা নিয়মগুলি পরিবর্তন করেছেন যাতে এটি 2 মোড হয় So সুতরাং মূলত কোনও বাইনারি বহুপদী মোড 2 কেবল বহনযোগ্য বা এক্সওআরএস ছাড়া সংযোজন। সুতরাং আমাদের মূল সমীকরণটি দেখে মনে হচ্ছে:
=( 1x^110 + 1x^101 + 1x^100 + 11x^11 + 1x^10 + 1x^1 + x^0 ) MOD 2
=( 1x^110 + 1x^101 + 1x^100 + 1x^11 + 1x^10 + 1x^1 + x^0 )
= x^6 + x^5 + x^4 + 3*x^3 + x^2 + x^1 + x^0 (or that original number we had)
আমি জানি এটি বিশ্বাসের একটি ঝাঁপ তবে এটি লাইন-প্রোগ্রামার হিসাবে আমার সক্ষমতার বাইরে। আপনি যদি কোনও হার্ড-কোর সিএস-শিক্ষার্থী বা ইঞ্জিনিয়ার হন তবে আমি এটিকে ভেঙে ফেলার চ্যালেঞ্জ জানাই। এই বিশ্লেষণ থেকে সবাই উপকৃত হবে।
সুতরাং একটি সম্পূর্ণ উদাহরণ কাজ করতে:
Original message : 1101011011
Polynomial of (W)idth 4 : 10011
Message after appending W zeros : 11010110110000
এখন আমরা সিআরসি গাণিতিক ব্যবহার করে বহু দ্বারা বর্ধিত বার্তাটি ভাগ করি। এটি পূর্বের মতো একই বিভাগ:
1100001010 = Quotient (nobody cares about the quotient)
_______________
10011 ) 11010110110000 = Augmented message (1101011011 + 0000)
=Poly 10011,,.,,....
-----,,.,,....
10011,.,,....
10011,.,,....
-----,.,,....
00001.,,....
00000.,,....
-----.,,....
00010,,....
00000,,....
-----,,....
00101,....
00000,....
-----,....
01011....
00000....
-----....
10110...
10011...
-----...
01010..
00000..
-----..
10100.
10011.
-----.
01110
00000
-----
1110 = Remainder = THE CHECKSUM!!!!
বিভাগটি একটি ভাগফল দেয়, যা আমরা ফেলে দিই এবং একটি অবশিষ্ট অংশ, যা গণনা করা চেকসাম। এটি গণনা শেষ করে। সাধারণত, চেকসামটি বার্তায় যুক্ত হয় এবং ফলাফলটি সঞ্চারিত হয়। এই ক্ষেত্রে সংক্রমণটি হবে: 11010110111110।
কেবলমাত্র আপনার বিভাজক হিসাবে 32-বিট নম্বর ব্যবহার করুন এবং আপনার সম্পূর্ণ স্ট্রিমটিকে আপনার লভ্যাংশ হিসাবে ব্যবহার করুন। ভাগফলকে ফেলে দিন এবং বাকীটি রাখুন। আপনার বার্তার শেষে বাকিটি নিয়ে যান এবং আপনার কাছে একটি সিআরসি 32 রয়েছে have
গড় লোকের পর্যালোচনা:
QUOTIENT
----------
DIVISOR ) DIVIDEND
= REMAINDER
- প্রথম 32 বিট নিন।
- শিফট বিট
- যদি 32 বিটগুলি ডিভাইজারের চেয়ে কম হয় তবে দ্বিতীয় ধাপে যান।
- ডিভিজোর দ্বারা এক্সওর 32 বিট। পদক্ষেপ 2 এ যান।
(দ্রষ্টব্য যে স্ট্রিমটি 32 বিট দ্বারা বিভাজ্য হতে হবে বা এটি প্যাড করা উচিত For উদাহরণস্বরূপ, একটি 8-বিট এএনএসআই প্রবাহ প্যাড করতে হবে Also এছাড়াও স্ট্রিমের শেষে, বিভাগটি থামানো হয়েছে))
0xEDB88320
আরো msbit-প্রথম (লেখা যেতে পারে স্বাভাবিক ) হিসেবে0x04C11DB7
। একই সিআরসি বহুপদী ব্যবহার করে আপনি অন্য কোথাও উত্পন্ন টেবিলের মানগুলি খুঁজে পেয়েছিলেন?