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 তে 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 কিভাবে কাজ করে?

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 কিভাবে কাজ করে?

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 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

Leave A Reply

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