double less operator in Go Tour 37 -


मुझे अजीब अभिव्यक्ति 1 & lt; & lt; आईआईटी (i)

  पैकेज मुख्य आयात "एफएमटी" फेंक मुख्य () {पॉ: = मेक ([] इंट, 10) i: = रेंज पो {पॉ [i ] = 1 & lt; & lt; यूआईआईटी (आई)} _ के लिए, मान: = रेंज पो {fmt.Printf ("% d \ n", मान)}}   

ऑपरेटर & lt; & lt; क्या?

प्रोग्राम को आउटपुट मिला:

  1 2 4 8 16 32 64 128 256 512 प्रोग्राम से बाहर निकल गया।    

यह एक बाइनरी पाली ऑपरेटर है। विशेष रूप से, यह एक बाएं पारी है (चूंकि वे बाईं ओर इंगित करते हैं)।

यह क्या करता है, एक संख्या के द्विआधारी प्रतिनिधित्व में सभी बिट्स को स्थानांतरित कर रहा है ... बाएं।

इसके लिए उदाहरण। 1 का द्विपदीय प्रतिनिधित्व (8 बिट प्रति बाइट के सुरक्षित धारणा के साथ) है: 00000001 । बाएं पारी को लागू करने का काम करता है:

  00000001 & lt; & lt; 00000010   

जो 2 का द्विआधारी प्रतिनिधित्व है। इसे फिर से लागू करने का काम करता है:

  00000010 & lt; & lt; 00000100   

.. जो 4 का द्विआधारी प्रतिनिधित्व है .. और इसी तरह।

इसके विपरीत, सही बदलाव & gt; & gt; विपरीत करता है, इसलिए मान 4 को & gt; & gt; लागू करता है, उत्पादन करता है:

  00000100> & gt; 00000010   

.. 2।

आप सही बदलाव ऑपरेटर का उपयोग कर पीछे की गिनती के लिए यात्रा को बदल सकते हैं:

  पाउ [ आई] = 512 & gt; & gt; यूआईटी (i)    

Comments

Popular posts from this blog

Out of index C/C++ -

regex - PatternSyntaxException: while using String.ReplaceAll function in java? -

java - Projects which are accessed via multiple (different) IDEs: Ant or Maven? -