PHP Professional,Laravel 5.6 Beginning to Advance এবং Zend Certified PHP Engineer (ZCPE ) Course এ সীমিত সংখ্যক আসন বাকি আছে। আগ্রহীদেরকে অতিসত্বর মাসুদ আলম স্যার এর সাথে যোগাযোগ করার জন্য অনুরোধ করা যাচ্ছে। স্যার এর মোবাইল নম্বর : ০১৭২২ ৮১ ৭৫ ৯১

PHP Operators পর্ব -৫ : PHP Bitwise Operators

এই পর্বে আপনি জানতে পারবেন :

PHP তে Bitwise Operators কি?

PHP অথবা যেকোনো Programming Language এ যেইসব symbol বা চিহ্ন কম্পিউটারের binary পর্যায়ে এক বা একাধিক Integer Number এর মধ্যে নির্দিষ্ট বিট মূল্যায়ন,ম্যানিপুলেশন এবং decision বা সিদ্ধান্ত মূলক কাজ করার জন্য ব্যবহার করা হয়, PHP অথবা যেকোনো Programming Language এর পরিভাষায় এ গুলোকে বলা হয় Bitwise Operators. Bitwise Operator কি তা ভালোভাবে বোঝার জন্য আপনাকে Binary Number কি সেটি বুঝে আসতে হবে। Binary Number সহ অন্যান্য number system ভালো ভাবে বুঝার জন্য নিচের article টি দেখুন।।

PHP তে Number System কি ? (What is Number System in PHP?)

PHP তে Bitwise Operators কয়টি? এবং কি কি ?

PHP তে Bitwise Operator ৬ টি। নিচের টেবিল এ প্রত্যেকটি Bitwise Operators সম্পর্কে সংক্ষেপে আলোচনা করা হলো:

Bitwise Operators Operator নাম উদাহরণ ফলাফল (Result)
& And echo $a & $b; সেই Binary Bit গুলিই আসবে যেগুলো $a এবং $b variable দুটোতেই Binary Value Set বা 1
| Or $a | $b সেই Binary Bit গুলিই আসবে যেগুলো $a এবং $b variable দুটোর মধ্যে যেকোনো একটি Set বা 1
^ Xor $a ^ $b সেই Binary Bit গুলিই আসবে যেগুলো $a এবং $b variable দুটোর মধ্যে যেকোনো একটি Set বা 1 কিন্তু দুটিই SET হওয়া যাবেনা।
~ Not ~$a যা আছে তার বিপরীত আসবে। অর্থাৎ : যদি $a এর Binary Bit 0 থাকে , তাহলে Output আসবে 1 . একই ভাবে $a এর Binary Bit 1 থাকে, Output আসবে 0.
<< Left Shift $a<<$b $a এর Binary Bit গুলো $b এর সমসংখ্যক Bit বামে shift হবে।
>> Right Shift $a>>$b $a এর Binary Bit গুলো $b এর সমসংখ্যক Bit ডানে shift হবে।

PHP তে Bitwise And (&) Operator কিভাবে কাজ করে?

php bitwise and

Bitwise And Operator এ সেই Binary Bit গুলিই আসবে যেগুলো $x এবং $y variable দুটোতেই Binary Value Set বা 1

নীচের table দুটি থেকে আমরা বুঝতে পারবো Bitwise AND (&) কীভাবে কাজ করে।

Table 1:

Expression1 Expression2 Result
False False False
False True False
True False False
True True True

Table 2:

Bit in Expression1 Bit in Expression2 Result
0 0 0
0 1 0
1 0 0
1 1 1

Bitwise And (&) কিভাবে কাজ করে তা বুঝার জন্য নিচের উদাহরণ দেখে নেয়া যাক :

&lt;?php
$x=7;
$y=5;
echo $x &amp; $y; //Result: 5
?&gt;

এই উদাহরণ আরেকটু ভালো ভাবে বুঝার জন্য নিচের টেবিল দেখুন :

1 Byte ( 8 bits )
Place Value 128 64 32 16 8 4 2 1    
$x 0 0 0 0 0 1 1 1 = 7
$y 0 0 0 1 0 1 0 1 = 5
Result: 1 0 1 = 5

ব্যাখ্যা: উপরের টেবিল এ আমরা দেখতে পাই, $x এবং $y variable এর প্রথম এবং চতুর্থ Bit দুইটারই Set সংজ্ঞা অনুযায়ী যার AND করলে হয় 101. আর 101 এর ডেসিমাল ভ্যালু হচ্ছে 1*22+0*21+1*20=4+0+1=5

PHP তে Bitwise Or (|) Operator কিভাবে কাজ করে?

PHP Bitwise OR

Bitwise Or Operator এ সেই Binary Bit গুলিই আসবে যেগুলো $x এবং $y variable দুটোর মধ্যে যেকোনো একটি Set বা 1


নীচের table দুটি থেকে আমরা বুঝতে পারবো Bitwise OR (|) কীভাবে কাজ করে।

Table 1:

Expression1 Expression2 Result
False False False
False True True
True False True
True True True

Table 2:

Bit in Expression1 Bit in Expression2 Result
0 0 0
0 1 1
1 0 1
1 1 1

Bitwise OR (|) কিভাবে কাজ করে তা বুঝার জন্য নিচের উদাহরণ দেখে নেয়া যাক :

&lt;?php
$x=7;
$y=5;
echo $x | $y; //Result: 7
?&gt;

এই উদাহরণ আরেকটু ভালো ভাবে বুঝার জন্য নিচের টেবিল দেখুন :

1 Byte ( 8 bits )
Place Value 128 64 32 16 8 4 2 1    
$x 0 0 0 0 0 1 1 1 = 7
$y 0 0 0 1 0 1 0 1 = 5
Result: 1 1 1 = 7

ব্যাখ্যা: উপরের টেবিল এ আমরা দেখতে পাই, $x variable এর প্রথম ,দ্বিতীয় এবং চতুর্থ Bit তিনটিই Set সংজ্ঞা অনুযায়ী যার OR করলে হয় 111. আর 111 এর ডেসিমাল ভ্যালু হচ্ছে 1*22+1*21+1*20=4+2+1=5

PHP তে Bitwise Xor (^) Operator কিভাবে কাজ করে?

bitwise-Xor

Bitwise Xor Operator এ সেই Binary Bit গুলিই আসবে যেগুলো $a এবং $b variable দুটোর মধ্যে যেকোনো একটি Set বা 1 কিন্তু দুটিই SET বা UNSET হওয়া যাবেনা। নীচের table দুটি থেকে আমরা বুঝতে পারবো Bitwise XOR কীভাবে কাজ করে।

Table 1:

Expression1 Expression2 Result
False False False
False True True
True False True
True True False

Table 2:

Bit in Expression1 Bit in Expression2 Result
0 0 0
0 1 1
1 0 1
1 1 0

Bitwise Or (^) কিভাবে কাজ করে তা বুঝার জন্য নিচের উদাহরণ দেখে নেয়া যাক :

&lt;?php
$x=7;
$y=5;
echo $x ^ $y; //Result: 2
?&gt;

আরেকটু ভালো ভাবে বুঝার জন্য নিচের টেবিল দেখুন :

1 Byte ( 8 bits )
Place Value 128 64 32 16 8 4 2 1    
$x 0 0 0 0 0 1 1 1 = 7
$y 0 0 0 1 0 1 0 1 = 5
Result: 0 1 0 = 2

ব্যাখ্যা: উপরের টেবিল এ আমরা দেখতে পাই, $x এবং $y variable এর প্রথম এবং চতুর্থ Bit দুইটারই Set একমাত্র দ্বিতীয় Bit ই একটি আরেকটির বিপরীত সংজ্ঞা অনুযায়ী যার Xor করলে হয় 010. আর 010 এর ডেসিমাল ভ্যালু হচ্ছে 0*22+1*21+0*20=0+1+0=2

PHP তে Bitwise Not (~) Operator কিভাবে কাজ করে?

Bitwise Not মানে যা আছে তার বিপরীত আসবে। অর্থাৎ : যদি $a এর Binary Bit 0 থাকে , তাহলে Output আসবে 1 . একই ভাবে $a এর Binary Bit 1 থাকে, Output আসবে 0.

Bitwise Not (~) কিভাবে কাজ করে তা বুঝার জন্য নিচের উদাহরণ দেখে নেয়া যাক :

&lt;?php
$x=7;
$y=3;
echo $x &amp; ~$y; //Result=4
?&gt;

উদাহরণটি আরেকটু ভালো ভাবে বুঝার জন্য নিচের টেবিল দেখুন :

1 Byte ( 8 bits )
Place Value 128 64 32 16 8 4 2 1    
$x 1 1 1 = 7
$y 0 1 1 = 3
~$y 1 0 0 = 4
Result: 1 0 0 = 4

PHP তে Bitwise Left Shift(<<) Operator কি? এবং কিভাবে কাজ করে?

যখন Binary Bit গুলো নির্দিষ্ট সংখ্যক ধাপ বামে স্থানান্তর হয়, PHP এর পরিভাষায় একে বলা হয় Left Shift. Left Shift বের করার সহজ পদ্ধতি হচ্ছে , যেই সংখ্যার সাথে যত ধাপ left shift করবেন ততগুলো ২ একটি আরেকটির সাথে গুন করতে হবে। এবং ঐ গুণফলের সাথে মূল সংখ্যার (অর্থাৎ যাকে Left Shift করবেন তাকে) গুন করতে হবে। আরেকটু সহজ ভাবে বুঝার জন্য নিচের উদাহরণটি টি দেখুন :

&lt;?php
echo 8&lt;&lt;2; //Result:32
echo &quot;&lt;br&gt;&quot;;
echo 8&lt;&lt;4 //Result: 128
?&gt;

এখানে 8<<2 মানে বুঝায় 8*22 = 8*2*2=32 একই ভাবে 8<<4 মানে বুঝায় 8*24 = 8*2*2*2*2=128

PHP তে Right Shift(>>) Operator কি? এবং কিভাবে কাজ করে?

যখন Binary Bit গুলো নির্দিষ্ট সংখ্যক ধাপ ডানে স্থানান্তর হয়, PHP এর পরিভাষায় একে বলা হয় Right Shift. Right Shift বের করার সহজ পদ্ধতি হচ্ছে , যেই সংখ্যার সাথে যত ধাপ Right shift করবেন ততগুলো ২ একটি আরেকটির সাথে গুন করতে হবে। এবং ঐ গুণফলের সাথে মূল সংখ্যার (অর্থাৎ যাকে Right Shift করবেন তাকে) ভাগ করতে হবে। আরেকটু সহজ ভাবে বুঝার জন্য নিচের উদাহরণটি টি দেখুন :

&lt;?php
echo 8&gt;&gt;2; //Result:2
echo &quot;&lt;br&gt;&quot;;
echo 16&gt;&gt;4 //Result:1
?&gt;

এখানে 8>>2 মানে বুঝায় 8/22 = 8/2*2=2 একই ভাবে 16>>4 মানে বুঝায় 16/24 = 16/2*2*2*2=1

এই ক্যাটাগরির অন্যান্য পোস্ট:

Masud Alam
আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ৮ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। বিশেষ ভাবে বাংলাদেশের ১০০ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই আমার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে TechBeeo Software Company তে সিইও হিসাবে আছি । পাশাপাশি w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -7 Engineering কোর্স করাই। আর w3programmers.com সাইট টি আমার।

Leave a Reply

Your email address will not be published. Required fields are marked *