मैं इनपुट के रूप में int लेना चाहता हूं, और kth bit को वापस करना चाहता हूं।जावा में बिट द्वारा एक पूर्णांक बिट कैसे पढ़ सकता है?
int getBit(int n, int k){
return kth bit in n;
}
मैं यह कैसे करूँगा?
मैं इनपुट के रूप में int लेना चाहता हूं, और kth bit को वापस करना चाहता हूं।जावा में बिट द्वारा एक पूर्णांक बिट कैसे पढ़ सकता है?
int getBit(int n, int k){
return kth bit in n;
}
मैं यह कैसे करूँगा?
का उपयोग बिटवाइज़ ऑपरेटर्स:
int getBit(int n, int k) {
return (n >> k) & 1;
}
स्पष्टीकरण (बिट्स में):
n
100010101011101010 (example)
n >> 5
000001000101010111 (all bits are moved over 5 spots, therefore
& the bit you want is at the end)
000000000000000001 (0 means it will always be 0,
= 1 means that it will keep the old value)
1
return (n >> k) & 1;
यहाँ, n >> k
कम से कम महत्वपूर्ण स्थिति में k
वें सा बदलाव, और & 1
मास्क बाहर सब कुछ।
सबसे कम महत्वपूर्ण बिट बिट संख्या 0
है:
return (n>>k)&1;
तुम भी मॉड्यूल का उपयोग कर सकते हैं इसके लिए संपत्ति। यदि आपकी संख्या भी सबसे कम महत्वपूर्ण बिट शून्य है, अन्यथा (विषम) एक है।
return (n>>k)%2;
या उपयोग:
boolean getBit(int n, int k) {
return (((n >> k) & 1) == 1 ? true:false);
}
आप एक बूलियन मान
इस 0 सा अधिकार के रूप में कम से कम महत्वपूर्ण बिट से शुरू कर रहा है चाहते हैं? – user1921187
@ user1921187 हाँ, यह है। 'getBit (0b10001, 0)' '1' वापस करेगा, और 'getBit (0b10001, 1)' ''' वापस आ जाएगा। – Doorknob
ठीक है, अगर मैं getBit (n, 0) चलाता हूं, तो मुझे दाएं से दूसरी बिट मिल जाएगी। तो k = 0 वास्तव में मुझे कम से कम महत्वपूर्ण बिट मिलेगा, इसलिए यह 0 वां बिट है। क्या मैं कुछ गलत देख रहा हूँ? – user1921187