Go Tour 37 中的双减运算符

在Go Tour 37我面对奇怪的表情1 << uint(i)


package main


import "fmt"


func main() {

    pow := make([]int, 10)

    for i := range pow {


        pow[i] = 1 << uint(i)

    }

    for _, value := range pow {

        fmt.Printf("%d\n", value)

    }

}

运营商<<做什么的?


程序得到输出:


1

2

4

8

16

32

64

128

256

512


Program exited.


至尊宝的传说
浏览 178回答 1
1回答

慕丝7291255

它是一个二元移位运算符。具体来说,它是一个左移(因为它们指向左边)。它的作用是将数字的二进制表示中的所有位移动...左。例如。的1的二进制表示是(每字节8位的一个安全的假设): 00000001。应用左移产生:00000001<<00000010这是 2 的二进制表示。再次应用它会产生:00000010<<00000100..这是 4.. 的二进制表示,依此类推。相反,右移>>则相反,因此应用>>到值 4,产生:00000100>>00000010..2.您可以使用右移运算符将游览更改为向后计数:pow[i] = 512 >> uint(i)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go