সংখ্যা পদ্ধতি ও রূপান্তর
বাইনারি, ওক্টা ও হেক্সাডেসিম্যাল রূপান্তর
সংখ্যা পদ্ধতি কী এবং কেন গুরুত্বপূর্ণ?
কম্পিউটার শুধুমাত্র 0 ও 1 বোঝে, কিন্তু মানুষ দশমিক পদ্ধতি (1, 2, 3...) ব্যবহার করে। এই দুটির মধ্যে সেতুবন্ধন হলো সংখ্যা পদ্ধতি। কম্পিউটার বিজ্ঞানে চারটি পদ্ধতি সবচেয়ে বেশি ব্যবহৃত: ডেসিমাল, বাইনারি, অক্টাল ও হেক্সাডেসিমাল।
BCS প্রিলিমিনারি ও ব্যাংক নিয়োগ পরীক্ষায় সংখ্যা পদ্ধতি থেকে প্রতি বছর প্রশ্ন আসে। বিশেষত বাইনারি ↔ ডেসিমাল, হেক্স ↔ বাইনারি, অক্টাল ↔ বাইনারি রূপান্তর থেকে বারবার প্রশ্ন আসতে দেখা যায়।
চারটি প্রধান সংখ্যা পদ্ধতি
সংখ্যা পদ্ধতির তুলনা:
- •ডেসিমাল (Decimal) — ভিত্তি 10, অঙ্ক: 0–9। আমাদের দৈনন্দিন পদ্ধতি।
- •বাইনারি (Binary) — ভিত্তি 2, অঙ্ক: 0, 1। কম্পিউটারের মূল ভাষা।
- •অক্টাল (Octal) — ভিত্তি 8, অঙ্ক: 0–7। অঙ্কে 8 বা 9 থাকলে সেটি অক্টাল নয়।
- •হেক্সাডেসিমাল (Hexadecimal) — ভিত্তি 16, অঙ্ক: 0–9, A–F। কোডে 0x দিয়ে লেখা হয়।
হেক্সে A–F এর দশমিক মান:
- •A=10, B=11, C=12, D=13, E=14, F=15
- •একই সংখ্যার চারটি রূপ: (46)₁₀ = (101110)₂ = (56)₈ = (2E)₁₆
বাইনারি থেকে ডেসিমাল রূপান্তর
আমাদের পরিচিত দশমিক পদ্ধতিতে একটি সংখ্যার প্রতিটি ঘর নির্দিষ্ট মান বহন করে — যেমন ৩৪৫ মানে ৩ শত + ৪ দশ + ৫ এক। বাইনারিতে ঠিক একইভাবে কাজ করে, শুধু প্রতিটি ঘরের মান 10-এর গুণিতকের বদলে 2-এর গুণিতক (1, 2, 4, 8, 16, 32...)।
নিয়ম: বাইনারি সংখ্যাটি ডান থেকে বাম দিকে পড়ুন। প্রতিটি 1-এর জায়গায় সেই ঘরের মান যোগ করুন, 0-এর জায়গায় কিছু যোগ হবে না।
উদাহরণ: (101110)₂ = ?
- •প্রতিটি ঘরের মান (ডান থেকে বাম): 1, 2, 4, 8, 16, 32
- •বাইনারি অঙ্ক (ডান থেকে বাম): 0, 1, 1, 1, 0, 1
- •যেখানে 1 আছে সেই ঘরের মান নিন: 2 + 4 + 8 + 32
- •যেখানে 0 আছে (1 ও 16) সেগুলো বাদ দিন
- •ফলাফল: 2 + 4 + 8 + 32 = 46
ঘরের মান মনে রাখার সহজ উপায়:
- •ডান থেকে শুরু করুন: 1 → 2 → 4 → 8 → 16 → 32 → 64 → 128
- •প্রতিটি ঘর আগের ঘরের দ্বিগুণ — এটুকু মনে রাখলেই যথেষ্ট।
ডেসিমাল থেকে বাইনারি রূপান্তর
পদ্ধতিটি সহজ — সংখ্যাটিকে বারবার 2 দিয়ে ভাগ করতে থাকুন যতক্ষণ না ভাগফল 0 হয়। প্রতিবার ভাগ দেওয়ার পর ভাগশেষটি (0 বা 1) লিখে রাখুন। সবশেষে সব ভাগশেষ নিচ থেকে উপরে পড়লেই বাইনারি সংখ্যা পাবেন।
কেন নিচ থেকে উপরে? কারণ প্রথম ভাগশেষটি সবচেয়ে ডানের (ছোট) ঘরের মান, আর শেষেরটি সবচেয়ে বাম (বড়) ঘরের মান।
উদাহরণ: (46)₁₀ → বাইনারি
- •46 ÷ 2 = 23, ভাগশেষ 0 ← সবচেয়ে ডানের বিট
- •23 ÷ 2 = 11, ভাগশেষ 1
- •11 ÷ 2 = 5, ভাগশেষ 1
- •5 ÷ 2 = 2, ভাগশেষ 1
- •2 ÷ 2 = 1, ভাগশেষ 0
- •1 ÷ 2 = 0, ভাগশেষ 1 ← সবচেয়ে বামের বিট
- •নিচ থেকে উপরে পড়লে: (101110)₂
ডেসিমাল থেকে অক্টাল রূপান্তর
নিয়ম হুবহু একই, শুধু 2-এর জায়গায় 8 দিয়ে ভাগ করতে হবে। অক্টালে 0 থেকে 7 পর্যন্ত অঙ্ক আছে, তাই প্রতিটি ভাগশেষ 0–7-এর মধ্যেই থাকবে। ভাগফল 0 না হওয়া পর্যন্ত ভাগ দিতে থাকুন, তারপর ভাগশেষগুলো নিচ থেকে উপরে পড়ুন।
উদাহরণ: (55)₁₀ → অক্টাল
- •55 ÷ 8 = 6, ভাগশেষ 7 ← সবচেয়ে ডানের অঙ্ক
- •6 ÷ 8 = 0, ভাগশেষ 6 ← সবচেয়ে বামের অঙ্ক
- •ভাগফল 0 হয়ে গেছে, তাই শেষ।
- •নিচ থেকে উপরে পড়লে: (67)₈
- •যাচাই: 6×8 + 7 = 48 + 7 = 55 ✓
ডেসিমাল থেকে হেক্সাডেসিমাল রূপান্তর
এবার 16 দিয়ে ভাগ করতে হবে। একটু মজার বিষয় হলো, ভাগশেষ যদি 10 বা তার বেশি হয় তাহলে সেটাকে সংখ্যায় লেখা যাবে না — কারণ হেক্সে প্রতিটি ঘর একটিমাত্র অঙ্ক। তাই 10=A, 11=B, 12=C, 13=D, 14=E, 15=F লিখতে হয়।
উদাহরণ: (746)₁₀ → হেক্সাডেসিমাল
- •746 ÷ 16 = 46, ভাগশেষ 10 → A ← সবচেয়ে ডানের অঙ্ক
- •46 ÷ 16 = 2, ভাগশেষ 14 → E
- •2 ÷ 16 = 0, ভাগশেষ 2 ← সবচেয়ে বামের অঙ্ক
- •নিচ থেকে উপরে পড়লে: (2EA)₁₆
- •যাচাই: 2×256 + 14×16 + 10 = 512 + 224 + 10 = 746 ✓
হেক্সাডেসিমাল ↔ বাইনারি রূপান্তর
হেক্স ↔ বাইনারি রূপান্তর সবচেয়ে সহজ — ভাগের দরকার নেই। প্রতিটি হেক্স অঙ্ক সরাসরি একটি নির্দিষ্ট 4-বিট বাইনারির সাথে মিলে যায়। নিচের টেবিলটি মুখস্থ করলেই দুই দিকেই মুহূর্তে রূপান্তর করা যাবে।
হেক্স ↔ বাইনারি শর্টকাট টেবিল:
- •0=0000 1=0001 2=0010 3=0011
- •4=0100 5=0101 6=0110 7=0111
- •8=1000 9=1001 A=1010 B=1011
- •C=1100 D=1101 E=1110 F=1111
হেক্স → বাইনারি: (2FA)₁₆ → ?
- •প্রতিটি হেক্স অঙ্ক আলাদাভাবে 4-বিট বাইনারিতে রূপান্তর করুন:
- •2 → 0010, F → 1111, A → 1010
- •পাশাপাশি বসালে: (001011111010)₂
বাইনারি → হেক্স: (001011111010)₂ → ?
- •ডান থেকে ৪ বিটের গ্রুপ করুন (বামে প্রয়োজনে 0 যোগ করুন):
- •0010 | 1111 | 1010
- •প্রতিটি গ্রুপ হেক্সে: 0010=2, 1111=F, 1010=A
- •ফলাফল: (2FA)₁₆
উদাহরণ: 0x1234 → বাইনারি
- •0x উপসর্গ মানে হেক্সাডেসিমাল।
- •1=0001, 2=0010, 3=0011, 4=0100
- •ফলাফল: 0001 0010 0011 0100
অক্টাল ↔ বাইনারি রূপান্তর
হেক্সের মতোই — তবে এখানে প্রতিটি অক্টাল অঙ্ক ৩-বিট বাইনারির সাথে মিলে যায়। দুই দিকেই ভাগের দরকার নেই, শুধু গ্রুপ করলেই হয়।
অক্টাল → বাইনারি: (67)₈ → ?
- •প্রতিটি অক্টাল অঙ্ক আলাদাভাবে 3-বিট বাইনারিতে রূপান্তর করুন:
- •6 → 110, 7 → 111
- •পাশাপাশি বসালে: (110111)₂
- •যাচাই: 32+16+4+2+1 = 55 = (67)₈ ✓
বাইনারি → অক্টাল: (110111)₂ → ?
- •ডান থেকে ৩ বিটের গ্রুপ করুন (বামে প্রয়োজনে 0 যোগ করুন):
- •110 | 111
- •প্রতিটি গ্রুপ অক্টালে: 110=6, 111=7
- •ফলাফল: (67)₈
পরীক্ষায় আসা গুরুত্বপূর্ণ তথ্য
এগুলো সরাসরি পরীক্ষায় আসে — মনে রাখুন:
- 1.1 Nibble = 4 bit | 1 Byte = 8 bit | 1 Word = 16 bit | 1 Double Word = 32 bit
- 2.ASCII = 7 বিট → 2⁷ = 128 চিহ্ন (Extended ASCII = 8 বিট = 256 চিহ্ন)
- 3.Unicode = 16 বিট → 2¹⁶ = 65,536 টি চিহ্ন (৩৭তম BCS-এ সরাসরি এসেছে)
- 4.2 KB মেমোরি address করতে: 2KB = 2 × 2¹⁰ = 2¹¹ → 11টি address line দরকার
- 5.n বিটে মোট সংখ্যা = 2ⁿ, সর্বোচ্চ মান = 2ⁿ − 1
অনুশীলন প্রশ্ন: সংখ্যা পদ্ধতি
বিগত পরীক্ষায় আসা প্রশ্ন
BCS প্রিলিমিনারি পরীক্ষায় সংখ্যা পদ্ধতি থেকে আসা প্রশ্নগুলো:
= 32 + 0 + 8 + 4 + 2 + 0 = 46
6 ÷ 8 = 0, ভাগশেষ 6
নিচ থেকে উপরে পড়লে: (67)₈
যাচাই: 6×8 + 7 = 55 ✓
2=0010, F=1111, A=1010
বাইনারি: 001011111010
বাইনারি → অক্টাল (৩ বিটের গ্রুপ):
001 | 011 | 111 | 010 → 1 | 3 | 7 | 2 = (1372)₈
2 → 010, 4 → 100
পাশাপাশি বসালে: (010 100)2
যাচাই: 0101002 = 16+4 = 20 = 2×8+4 = (24)8 ✓
1=0001, 2=0010, 3=0011, 4=0100
একসাথে: 0001 0010 0011 0100
অনুশীলন সমস্যা
- 1.(11001010)₂ কে ডেসিমালে রূপান্তর করুন।
- 2.ডেসিমাল 200 কে বাইনারি ও হেক্সাডেসিমালে রূপান্তর করুন।
- 3.(ABC)₁₆ কে বাইনারিতে রূপান্তর করুন, তারপর অক্টালে রূপান্তর করুন।
- 4.16 KB মেমোরি address করতে কতটি address line দরকার?
মূল বিষয়: রূপান্তর নিয়মগুলো একবার বুঝলেই যথেষ্ট — হেক্স ↔ বাইনারি (৪ বিটের গ্রুপ), অক্টাল ↔ বাইনারি (৩ বিটের গ্রুপ), ডেসিমাল ↔ অন্যান্য (ভাগের পদ্ধতি)।