में नकारात्मक संख्याओं को सही स्थानांतरित करना मेरे पास सी कोड है जिसमें मैं निम्नलिखित करता हूं।सी
int nPosVal = +0xFFFF; // + Added for ease of understanding
int nNegVal = -0xFFFF; // - Added for valid reason
अब मैं
printf ("%d %d", nPosVal >> 1, nNegVal >> 1);
जब कोशिश मैं
32767 -32768
इस उम्मीद है?
मैं की तरह
65535 >> 1 = (int) 32767.5 = 32767
-65535 >> 1 = (int) -32767.5 = -32768
है यही कारण है कि कुछ सोचने के लिए सक्षम हूँ, -३२७६७.५ -32,768 के लिए रवाना गोल है।
क्या यह समझ सही है?
+1, जो मैं जानना चाहता था। नकारात्मक शिफ्ट की ओर सही शिफ्ट राउंड। लेकिन क्या यह दस्तावेज है? – Alphaneo
यह कार्यान्वयन निर्भर है। (उपरोक्त मेरा संपादन देखें।) जैसा कि मैंने कहा था, मैंने कभी भी इस पर एक कार्यान्वयन अलग नहीं देखा है, लेकिन यह सैद्धांतिक रूप से कर सकता है। – Boojum