यहां हम बिट ऑपरेटरों का उपयोग करके जांच करेंगे कि कोई संख्या सकारात्मक है, या नकारात्मक या शून्य है। अगर हम 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