कुछ स्पष्ट करने की मांग।तार्किक, अंकगणितीय बिटवाई बदलाव
यह मेरी समझ है कि अंकगणितीय, तार्किक बिटवाइज़ बदलाव के संबंध में:
<<
काम दोनों>>
बदलाव के लिए एक ही है कि तार्किक पारी में 0 के साथ हमेशा होगा पैड बाइट भिन्न होते हैं, अंकगणितीय पारी जबकि साइन बिट के साथ इसे पैड करेगा।
मैं सी का उपयोग करके इसे कैसे अलग कर सकता हूं?
मैं क्या समझ से, वास्तविक ऑपरेटरों एक ही <<
हैं, >>
में क्या अंतर के बीच कमान होगा:
int i=1;
printf ("%d\n", i >> 1); // logical shift
int j=1;
printf ("%d\n", j >> 1); // arithmetical shift
कृपया मुझे पता है, गैर नकारात्मक संख्या के मामले में
वहाँ एक विशेष बदलाव के लिए मजबूर करने का कोई तरीका है। उदाहरण के लिए, मैं संकेत छोड़ने के लिए (x <<1)>> 1 "- – JAM
@ जेरी, @ एमएसी: अपडेट देखें। – kennytm
@mac: साइन बिट को छोड़ना पूर्ण नहीं है दो के पूरक में मूल्य – jamesdlin