এখানে আমরা বিট অপারেটর ব্যবহার করে একটি সংখ্যা ধনাত্মক, বা ঋণাত্মক বা শূন্য কিনা তা পরীক্ষা করব। যদি আমরা n>> 31 এর মত শিফটিং সঞ্চালন করি, তাহলে এটি প্রতিটি ঋণাত্মক সংখ্যাকে -1 এ রূপান্তর করবে, প্রতিটি অন্যান্য সংখ্যাকে 0 এ রূপান্তর করবে। যদি আমরা –n>> 31 সম্পাদন করি, তাহলে ধনাত্মক সংখ্যার জন্য এটি -1 প্রদান করবে। যখন আমরা 0 এর জন্য করি, তখন n>> 31, এবং –n>> 31, উভয়ই 0 প্রদান করে। এর জন্য আমরা নীচের মত আরেকটি সূত্র ব্যবহার করব -
1+(𝑛>>31)−(−𝑛>>31)
তাই এখন, যদি
- n হল ঋণাত্মক:1 + (-1) – 0 =0
- n ইতিবাচক:1 + 0 – (-1) =2
- n হল 0:1 + 0 – 0 =1
উদাহরণ
#include <iostream>
#include <cmath>
using namespace std;
int checkNumber(int n){
return 1+(n >> 31) - (-n >> 31);
}
int printNumberType(int n){
int res = checkNumber(n);
if(res == 0)
cout << n << " is negative"<< endl;
else if(res == 1)
cout << n << " is Zero" << endl;
else if(res == 2)
cout << n << " is Positive" << endl;
}
int main() {
printNumberType(50);
printNumberType(-10);
printNumberType(70);
printNumberType(0);
} আউটপুট
50 is Positive -10 is negative 70 is Positive 0 is Zero