এখানে আমরা বিট অপারেটর ব্যবহার করে একটি সংখ্যা পজিটিভ, 네가টিভ নাকি শূন্য কিনা তা যাচাই করব। যদি আমরা n >> 31 শিফ্টিং করি, তবে প্রতিটি 네가টিভ সংখ্যা -1-এ রূপান্তরিত হবে, এবং অন্যান্য সব সংখ্যা 0-এ। যদি -n >> 31 করি, তবে পজিটিভ সংখ্যার জন্য -1 রিটার্ন করবে। ০-এর জন্য n >> 31 এবং -n >> 31 দুটোই ০ রিটার্ন করবে। তাই আমরা নিচের সূত্রটি ব্যবহার করব:
1 + (n >> 31) - (-n >> 31)
তাহলে এখন:
- n 네가টিভ হলে: 1 + (-1) - 0 = 0
- n পজিটিভ হলে: 1 + 0 - (-1) = 2
- n ০ হলে: 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