এখানে আমরা বিট অপারেটর ব্যবহার করে একটি সংখ্যা ধনাত্মক, বা ঋণাত্মক বা শূন্য কিনা তা পরীক্ষা করব। যদি আমরা 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