2011-12-19 20 views
6

मैं जावा के लिए नया हूं, और यह पता चला कि जावा >> और >>> में दो राइट शिफ्ट ऑपरेटर हैं, लेकिन केवल एक बाएं शिफ्ट ऑपरेटर << हैं। ऐसा क्यों है?जावा में दो राइट शिफ्ट ऑपरेटर और केवल एक ही बाएं शिफ्ट ऑपरेटर क्यों हैं?

+5

सही-शिफ्ट ऑपरेटरों के बारे में आप जो जानते हैं उसके आधार पर, क्या आपके पास कोई विचार है? –

+1

यह [ट्यूटोरियल] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html) में भी समझाया गया है। – PeterMmm

+0

@ पीटरमम्म क्षमा करें, पृष्ठ नहीं मिला – sum2000

उत्तर

9

:

उदाहरण के लिए, निम्न भाव दोनों सही हैं।

Right Left

Right Left

ध्यान दें दोनों शिफ्ट में साइन बिट (बाएं-बिट) के साथ क्या होता है।

3

सही शिफ्ट ऑपरेटर एक (>>) और बिना किसी (>>>) साइन-एक्सटेंशन के साथ हैं। बाएं शिफ्ट ऑपरेशन में साइन एक्सटेंशन घटक नहीं है। क्योंकि तार्किक और गणित छोड़ दिया शिफ्ट संचालन समान (from wikipedia) कर रहे हैं

(0x80000000 >> 1) == 0xC0000000 
(0x80000000 >>> 1) == 0x40000000 
+0

क्यों? मैं यहाँ नया हूं, मुझे माफ़ कर दो अगर मैं मूर्ख सवाल पूछ रहा हूं – sum2000

+1

@ sum2000 साइन बिट कहां है? –

+0

@ डेव न्यूटन क्या आप यहां जवाब देने या पूछने के लिए हैं? – sum2000

संबंधित मुद्दे