PHP অথবা যেকোনো Programming Language এ Numbering system হচ্ছে , আমাদের দৈনন্দিন ব্যবহৃত number গুলোকে সর্বোচ্চ সংখ্যা বা base এবং অনুমোদিত নম্বর গুলোর এর উপর ভিত্তি করে বিভিন্ন গ্রূপ এ ভাগ করে প্রদর্শন বা represent করার উপায়।
PHP তে Numbering System কয় প্রকার?
PHP তে Number System ৪ প্রকার:
Numbering System নাম | সর্বোচ্চ সংখ্যা বা Base | অনুমোদিত Numbers |
---|---|---|
Binary | Base 2 | 0,1 |
Octal | Base 8 | 0,1,2,3,4,5,6,7 |
Decimal | Base 10 | 0,1,2,3,4,5,6,7,8,9 |
Hexadecimal | Base 16 | 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F (A=10, B=11, C=12, D=13, E=14, F=15) |
Binary Number System এবং Bit কি ?
Binary অর্থ দুই (২), অর্থাৎ এটি এমন একটি Numbering System যাতে সকল Number কে কেবলমাত্র 0 এবং 1 দিয়ে প্রকাশ করা হয়। মোট কথা, যেহেতু এতে 0 আর 1 এই দুটি ডিজিট ব্যবহার করা হয় তাই একে Binary Numbering System বলে। এই দুইটা Number অর্থাৎ 0 এবং 1 ব্যবহার করেই কম্পিউটারের সকল তথ্য প্রক্রিয়া করণ করে, গাণিতিক সমস্যা সমাধান করে, তথ্য সঞ্চয় করে রাখে অর্থাৎ সকল প্রকার কার্য সম্পাদন করে থাকে। আমরা যখন কোন প্রোগাম কম্পিউটারে লিখে এক্সিকিউট করি তখন কম্পিউটার সমস্ত কমান্ডকে 0 এবং 1 এ রূপান্তরিত করে প্রসেস করে থাকে। Binary Numbering System এর ভিত্তি দুই (2)। বাইনারি পদ্ধতিতে প্রতিটি Number কে বিট বলা হয়।
Octal Number System কি ?
Octal অর্থ অষ্টক বা 8, অর্থাৎ এটি এমন একটি Numbering System যাতে সকল Number কে কেবলমাত্র 0 থেকে 7 দিয়ে প্রকাশ করা হয়। মোট কথা, যেহেতু এতে 0 থেকে 7 এই আটটি ডিজিট ব্যবহার করা হয় তাই একে Octal Numbering System বলে। এইটা মূলত বাইনারি নম্বর গুলোকে তিনটি digit এ group করে (যেমন :000,001,010,011,100,101,110,111) কম্পিউটারের বিভিন্ন রকমের তথ্য প্রক্রিয়া করণ করে, গাণিতিক সমস্যা সমাধান করে, তথ্য সঞ্চয় করে রাখে অর্থাৎ বিভিন্ন কার্য সম্পাদন করে থাকে। Octal Numbering System এর ভিত্তি আট (৮)।
Decimal Number System কি ?
Decimal অর্থ দশমিক বা 10, অর্থাৎ এটি এমন একটি Numbering System যাতে সকল Number কে কেবলমাত্র 0 থেকে 9 দিয়ে প্রকাশ করা হয়। মোট কথা, যেহেতু এতে 0,1,2,3,4,5,6,7,8,9 এই ১০ টি ডিজিট ব্যবহার করা হয় তাই একে Decimal Numbering System বলে। এইটা মূলত আমাদের দৈনন্দিন জীবনে বিভিন্ন রকমের তথ্য প্রক্রিয়া করণ করে, গাণিতিক সমস্যা সমাধান করে অর্থাৎ বিভিন্ন কার্য সম্পাদন করে থাকে। Decimal Numbering System এর ভিত্তি দশ (১০)।
Hexadecimal Number System কি ?
Hexa Decimal অর্থ ষোলো বা 16, অর্থাৎ এটি এমন একটি Numbering System যাতে সকল Number কে কেবলমাত্র 0 থেকে 15 দিয়ে প্রকাশ করা হয়। এই পদ্ধতিতে ষোলোটি সংখ্যা হলো 0,1,2,3,4,5,6,7,8,9 এবং 10=A,11=B,12=C,13=D,14=E,15=F মোট কথা, যেহেতু এতে 0 থেকে 15 এই ১৬ টি ডিজিট ব্যবহার করা হয় তাই একে Hexadecimal Numbering System বলে। এইটা মূলত বাইনারি নম্বর গুলোকে চারটি digit এ group (যেমন :0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111) করে কম্পিউটারের বিভিন্ন রকমের তথ্য প্রক্রিয়া করণ করে, গাণিতিক সমস্যা সমাধান করে, তথ্য সঞ্চয় করে রাখে অর্থাৎ বিভিন্ন কার্য সম্পাদন করে থাকে। Hexadecimal Numbering System এর ভিত্তি দশ (১৬)।
কিভাবে Decimal কে Binary এবং Binary কে Decimal Number এ রূপান্তর করা যায়?
Decimal Number কে Binary Number এ রূপান্তর করার নিয়ম :
- যে সংখ্যাকে বাইনারি তে রুপান্তর করতে হবে সেটাকে ২ দিয়ে ভাগ করতে হবে
- ভাগশেষ যা হবে তা নিতে হবে, যদি ০ হয় তাও নিতে হবে
- যে ভাগফল আসবে সেটাকে আবার ২ দিয়ে ভাগ করতে হবে
- ভাগশেষ যা হবে তা নিতে হবে, যদি ০ হয় তাও নিতে হবে
- যে ভাগফল আসবে সেটাকে আবার ২ দিয়ে ভাগ করতে হবে
- ভাগশেষ যা হবে তা নিতে হবে, যদি ০ হয় তাও নিতে হবে
- এভাবে ভাগফল ১ না আসা পর্যন্ত ২ দিয়ে ভাগ করতে হবে
- ভাগফল ১ পেয়ে গেলে বাইনারি সংখ্যা হবে ১ এবং নিচ থেকে উপরের দিকে সব ভাগশেষগুলো পাশাপাশি বসে গঠিত সংখ্যা।
উদাহরণ ১: 16 কে Binary তে রুপান্তর
- 16 ÷ 2 = 8 ; ভাগশেষ 0
- 8 ÷ 2 = 4 ; ভাগশেষ 0
- 4 ÷2 = 2; ভাগশেষ 0
- 2 ÷ 2 = 1; ভাগশেষ 0
16 এর ক্ষেত্রে বাইনারি সংখ্যা = 10000
উদাহরণ ২ঃ 17 কে Binary তে রুপান্তর
- 17 ÷ 2 = 8 ; ভাগশেষ 1
- 8 ÷ 2 = 4 ; ভাগশেষ 0
- 4 ÷2 = 2; ভাগশেষ 0
- 2 ÷ 2 = 1; ভাগশেষ 0
17 এর ক্ষেত্রে Binary সংখ্যা = 10001
Binary Number থেকে Decimal Number এ রুপান্তরঃ
- Binary Number এর ডান দিক থেকে বাম দিকের বিট গুলিকে তাদের স্থানীয় মান দ্বারা গুন করতে হবে।
- এরপর গুণফল গুলো যোগ করলে যে সংখ্যা হবে তা ডেসিমেল সংখ্যা।
উদাহরণঃ 10001 কে Decimal Number রুপান্তর
- 1 × 1 = 1
- 0 × 2 = 0
- 0 × 4 = 0
- 0 × 8 = 0
- 1 × 16 = 16
Decimal Number= 1+0+0+0+16= 17
কিভাবে Decimal কে Octal এবং Octal কে Decimal Number এ রূপান্তর করা যায়?
Decimal Number কে Octal Number এ রূপান্তর করার নিয়ম :
- যে সংখ্যাকে Octal এ রুপান্তর করতে হবে সেটাকে 8 দিয়ে ভাগ করতে হবে
- ভাগশেষ যা হবে তা নিতে হবে, যদি 0 হয় তাও নিতে হবে
- যে ভাগফল আসবে সেটাকে আবার 8 দিয়ে ভাগ করতে হবে
- এভাবে ভাগশেষ 7 অথবা তার চেয়ে কম যেকোনো সংখ্যা না আশা পর্যন্ত 8 দিয়ে ভাগ করতে হবে
- ভাগশেষ 7 অথবা তার চেয়ে কম যেকোনো সংখ্যা পেয়ে গেলে Octal Number গুলো হবে সর্বশেষ ভাগফল এবং নিচ থেকে উপরের দিকে সব ভাগশেষগুলো পাশাপাশি বসে গঠিত সংখ্যা।
উদাহরণ ১: 139 কে Octal এ রুপান্তর
- 139 ÷ 8 = 17 ; ভাগশেষ 3
- 17 ÷ 8 = 2 ; ভাগশেষ 1
139 এর ক্ষেত্রে Octal সংখ্যা = 213
Octal Number থেকে Decimal Number এ রুপান্তরঃ
- Octal Number এর ডান দিক থেকে বাম দিকের বিট গুলিকে 8 এর স্থানীয় মান দ্বারা গুন করতে হবে।
- এরপর গুণফল গুলো যোগ করলে যে সংখ্যা হবে তা ডেসিমেল সংখ্যা।
উদাহরণঃ 213 Octal Number কে Decimal Number রুপান্তর
Octal 213=(2*82)+(1*81)+(3*80)=2*64+1*8+3*1
Octal Number: 213= 128+8+3 =139 Decimal
কিভাবে Decimal কে Hexadecimal এবং Hexadecimal কে Decimal Number এ রূপান্তর করা যায়?
Decimal Number কে Hexadecimal Number এ রূপান্তর করার নিয়ম :
- যে সংখ্যাকে Hexadecimal এ রুপান্তর করতে হবে সেটাকে 16 দিয়ে ভাগ করতে হবে
- ভাগশেষ যা হবে তা নিতে হবে, যদি 0 হয় তাও নিতে হবে
- যে ভাগফল আসবে সেটাকে আবার 16 দিয়ে ভাগ করতে হবে
- এভাবে ভাগশেষ 15 অথবা তার চেয়ে কম যেকোনো সংখ্যা না আশা পর্যন্ত 8 দিয়ে ভাগ করতে হবে
- ভাগশেষ 15 অথবা তার চেয়ে কম যেকোনো সংখ্যা পেয়ে গেলে Octal Number গুলো হবে সর্বশেষ ভাগফল এবং নিচ থেকে উপরের দিকে সব ভাগশেষগুলো পাশাপাশি বসে গঠিত সংখ্যা। তবে 0-9 এর পরের সংখ্যা গুলো যথাক্রমে 10=A,11=B,12=C,13=D,14=E,15=F বসাতে হবে।
উদাহরণ ১: 17 কে Hexadecimal এ রুপান্তর
- 17 ÷ 16 = 1 ; ভাগশেষ 1
17 এর ক্ষেত্রে Hexadecimal সংখ্যা = 11
Hexadecimal Number থেকে Decimal Number এ রুপান্তরঃ
- Hexadecimal Number এর ডান দিক থেকে বাম দিকের বিট গুলিকে 16 এর স্থানীয় মান দ্বারা গুন করতে হবে।
- এরপর গুণফল গুলো যোগ করলে যে সংখ্যা হবে তা ডেসিমেল সংখ্যা।
উদাহরণঃ 11 অথবা C Hexadecimal Number কে Decimal Number রুপান্তর
Hexadecimal 11=B=(1*161)+(1*160)=1*16+1*1
Hexadecimal Number: 11=B= 16+1 =17 Decimal
PHP তে Binary, Octal, Decimal, Hexadecimal number লেখার আলাদা কোনো নিয়ম আছে?
হ্যাঁ, PHP তে প্রত্যেকটি Numbering System এর ই লেখার আলাদা নিয়ম আছে। নিচের Table টি লক্ষ্য করুন :
Number System নাম | লেখার নিয়ম | উদাহরণ |
---|---|---|
Binary | PHP তে Binary Number লেখার আগে 0b (zero with b) জুড়ে দিতে হয় এবং number range 0-1 এর মধ্যে হতে হয়। | 0b01,0b10,0b11 |
Octal | PHP তে Octal Number লেখার আগে 0 (zero) জুড়ে দিতে হয় এবং number range 0-7 এর মধ্যে হতে হয়। | 01, 02, 03, 04, 05, 06, 07 |
Decimal | PHP তে 0-9 এর মধ্যে সব গুলো number ই Decimal Number হিসাবে পরিগণিত হয়। | 0,1,2,3,4,5,6,7,8,9 |
Hexadecimal | PHP তে Hexadecimal Number লেখার আগে 0x (zero with x) জুড়ে দিতে হয় এবং number range 0-15 এর মধ্যে হতে হয়। | 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF (A=10, B=11, C=12, D=13, E=14, F=15) |
একটি উদাহরণ :
<?php
echo 11+011+0b11+0x11; // Output: 40; but why?
ব্যাখ্যা: উপরের উদাহরণে লক্ষ্য করুন , প্রথম সংখ্যা 11 টি Decimal তারপর 011 number টি 0 দিয়ে শুরু হওয়ার কারণে Octal যার decimal মান “(1*81)+(1*80)=9″ 9 তারপর 0b11 number টি 0b দিয়ে শুরু হওয়ায় এটি Binary যার Decimal মান “(1*21)+(1*20)=3″ 3 সর্বশেষ 0x11 number টি 0x দিয়ে শুরু হওয়ায় এটি Hexadecimal যার Decimal মান “(1*161)+(1*160)=17″ 17. সুতরাং ফলাফল দাঁড়ালো (11+9+3+17=40)