मैं कुछ कोड देख रहा था जो प्रीपेन्ड 0s के साथ बाइनरी फॉर्म में एक संख्या आउटपुट करता है।जावा बिट मैनिपुलेशन - क्या करता है (num >> = 1) क्या करता है?
byte number = 48;
int i = 256; //max number * 2
while((i >>= 1) > 0) {
System.out.print(((number & i) != 0 ? "1" : "0"));
}
और यह समझ में नहीं आया कि मैं >> = 1 क्या करता है। मुझे पता है कि 1 >> 1 बिट्स को दाईं ओर 1 बिट से बदल दिया गया है लेकिन यह समझ में नहीं आया कि "=" क्या करता है और AFAIK, ">> =" की खोज करने के लिए यह संभव नहीं है कि इसका अर्थ क्या है।
मामूली सुधार '((i >>> = 1)! = 0) होगा क्योंकि वर्तमान लूप कुछ भी नहीं करेगा यदि आपने इसे 'i = 1 << 31' दिया है और आप कभी प्रिंटआउट नहीं कर सकते 32-बिट संख्या का शीर्ष बिट। –