Single and Double Precision Representation Schemes
কম্পিউটারে Floating-Point Number সংরক্ষণের জন্য IEEE 754 Standard ব্যবহার করা হয়।
এই পদ্ধতিতে সংখ্যা তিনটি অংশে ভাগ করা হয়:
- Sign Bit
- Exponent
- Mantissa (বা Significand)
Floating-Point Number-এর সাধারণ রূপ
Floating-Point Number সাধারণত নিচের আকারে প্রকাশ করা হয়:
\[ F \times 2^E \]
এখানে,
- F = Fraction বা Mantissa
- E = Exponent
Precision কী?
Precision বলতে বোঝায় একটি সংখ্যা কতটা সঠিকভাবে সংরক্ষণ করা যায়।
যত বেশি Bit Mantissa-এর জন্য ব্যবহার করা হবে, তত বেশি Accuracy পাওয়া যাবে।
দুই ধরনের Precision Representation
IEEE 754 Standard অনুযায়ী Floating-Point Number প্রকাশের দুটি প্রধান পদ্ধতি আছে:
- Single Precision (32-bit)
- Double Precision (64-bit)
1. Single Precision Representation
Single Precision-এ একটি Floating-Point Number মোট 32 Bit ব্যবহার করে সংরক্ষণ করা হয়।
32-bit Single Precision Structure
| অংশ | Bit সংখ্যা |
|---|---|
| Sign Bit | 1 bit |
| Exponent | 8 bits |
| Mantissa | 23 bits |
Sign Bit
- \(0\) → Positive Number
- \(1\) → Negative Number
Exponent Field
Exponent অংশে Bias ব্যবহার করা হয়।
Single Precision-এ Bias = 127
Mantissa Field
Mantissa অংশে সংখ্যার Significant Digits সংরক্ষণ করা হয়।
Normalized Form-এ Binary Point-এর আগে থাকা \(1\) Store করা হয় না।
Single Precision Example
ধরা যাক একটি Binary Floating-Point Pattern:
\[ 1\ 01111100\ 01000000000000000000000 \]
Step 1: Sign Bit
\[ 1 \]
অতএব এটি Negative Number।
Step 2: Exponent নির্ণয়
\[ 01111100_2 = 124_{10} \]
Bias = 127
অতএব প্রকৃত Exponent:
\[ 124 - 127 = -3 \]
Step 3: Mantissa নির্ণয়
Mantissa:
\[ 1.01_2 \]
এটি Decimal-এ:
\[ 1 + 2^{-2} = 1.25 \]
Final Value
\[ -1.25 \times 2^{-3} \]
\[ = -0.15625 \]
2. Double Precision Representation
Double Precision-এ Floating-Point Number সংরক্ষণের জন্য 64 Bit ব্যবহার করা হয়।
64-bit Double Precision Structure
| অংশ | Bit সংখ্যা |
|---|---|
| Sign Bit | 1 bit |
| Exponent | 11 bits |
| Mantissa | 52 bits |
Double Precision-এর বৈশিষ্ট্য
- আরও বেশি Accuracy প্রদান করে
- খুব বড় ও খুব ছোট সংখ্যা প্রকাশ করতে পারে
- Scientific Calculation-এ ব্যবহৃত হয়
- Memory বেশি ব্যবহার করে
Single Precision বনাম Double Precision
| বিষয় | Single Precision | Double Precision |
|---|---|---|
| Total Bits | 32 bits | 64 bits |
| Exponent Bits | 8 bits | 11 bits |
| Mantissa Bits | 23 bits | 52 bits |
| Accuracy | কম | বেশি |
| Memory Usage | কম | বেশি |
| Speed | দ্রুত | তুলনামূলক ধীর |
Trade-off between Size of Mantissa and Exponent
Floating-Point Representation-এ Mantissa এবং Exponent-এর Bit সংখ্যা নির্ধারণ করা খুব গুরুত্বপূর্ণ।
কারণ এখানে একটি Trade-off বা সমঝোতা থাকে।
Mantissa বেশি হলে কী হয়?
যদি Mantissa-এর জন্য বেশি Bit ব্যবহার করা হয়:
- Accuracy বা Precision বৃদ্ধি পায়
- Fractional Part আরও সঠিকভাবে সংরক্ষণ করা যায়
- কিন্তু Exponent-এর জন্য কম Bit বাকি থাকে
- ফলে খুব বড় বা খুব ছোট সংখ্যা প্রকাশের ক্ষমতা কমে যায়
Exponent বেশি হলে কী হয়?
যদি Exponent-এর জন্য বেশি Bit ব্যবহার করা হয়:
- অনেক বড় ও অনেক ছোট সংখ্যা প্রকাশ করা যায়
- Range বৃদ্ধি পায়
- কিন্তু Mantissa-এর জন্য কম Bit থাকে
- ফলে Accuracy কমে যায়
সহজ উদাহরণ
ধরা যাক আমাদের কাছে মোট 8 Bit আছে।
Case 1: Mantissa বেশি
Mantissa = 6 bits Exponent = 2 bits
- Accuracy বেশি
- কিন্তু Range কম
Case 2: Exponent বেশি
Mantissa = 3 bits Exponent = 5 bits
- Range বেশি
- কিন্তু Accuracy কম
Trade-off Summary
| যদি Bit বেশি দেওয়া হয় | যা বাড়ে | যা কমে |
|---|---|---|
| Mantissa | Precision / Accuracy | Range |
| Exponent | Range | Precision |
গুরুত্বপূর্ণ Note
Mantissa-এর Bit যত বেশি হবে, Accuracy তত বেশি হবে কিন্তু Range কমে যাবে।
Exponent-এর Bit যত বেশি হবে, Range তত বেশি হবে কিন্তু Accuracy কমে যাবে।
বাস্তব জীবনে ব্যবহার
- Scientific Calculator
- Computer Graphics
- Artificial Intelligence
- Game Development
- Weather Simulation
- Engineering Software
উপসংহার
Single এবং Double Precision Floating-Point Number প্রকাশের দুটি গুরুত্বপূর্ণ পদ্ধতি।
Single Precision কম Memory ব্যবহার করে কিন্তু Accuracy কম দেয়।
Double Precision বেশি Memory ব্যবহার করে কিন্তু অনেক বেশি Accurate Result প্রদান করে।
Floating-Point Representation-এ Mantissa এবং Exponent-এর মধ্যে সবসময় Precision এবং Range-এর একটি Trade-off থাকে।