博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iota和<<左移>>右移的用法
阅读量:6405 次
发布时间:2019-06-23

本文共 1193 字,大约阅读时间需要 3 分钟。

  hot3.png

    在go语言中iota比较特殊,是一个被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字就会自动加1

    左移运算符”<<”是双目运算符。左移n位就是乘以2的n次方。 其功能把”<<”左边的运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0。

    右移运算符”>>”是双目运算符。右移n位就是除以2的n次方。 其功能是把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数。

例一:

package iotaimport "fmt"func Test()  {    const(        c1 = iota  //c1=0        c2 = iota  //c2=1        c3 = iota  //c3=2    )    fmt.Println("c1 = ",c1," c2 = ",c2," c3 = ",c3,"\n")    const(        a = 1 << iota //a = 1        b = 1 << iota //b = 2        c = 1 << iota //c = 4    )    fmt.Println("a = ",a," b = ",b," c = ",c,"\n")    const(        v1 = iota //v1 = 0        v2        //v2 = 1        v3        //v3 = 2    )    fmt.Println("v1 = ",v1," v2 = ",v2," v3 = ",v3,"\n")    const(        x = 1 <

 

例二:

package mainimport (	"fmt")func main() {	const (		a2 = 1 << iota   //iota = 0  a2 = 1 X 2的0次方		b2 = 3 << iota   //iota = 1  b2 = 3 X 2的1次方		c2               //iota = 2  c2 = 3 X 2的2次方		d2               //iota = 3  d2 = 3 X 2的3次方		e2 = 120 >> iota //iota = 4  e2 = 120 / 2的4次方		f2               //iota = 5  f2 = 120 / 2的5次方	)	fmt.Println(a2, b2, c2, d2, e2, f2)	//1 6 12 24 7 3}

 

转载于:https://my.oschina.net/haoye/blog/1612097

你可能感兴趣的文章
webclinet downstring 搜狐 为什么是个?号
查看>>
new的三种形态
查看>>
记录发现的一个hiredis的bug
查看>>
WPF整理-使用ResourceDictionary管理Logical Resources
查看>>
广告banner:手动滑动切换,自动切换,点击跳转,异步加载网络图片
查看>>
2018-05-17 第十一天
查看>>
linux 下实现ssh免密钥登录
查看>>
MySQL 5.7 LOGICAL_CLOCK 并行复制原理及实现分析
查看>>
apache访问日志
查看>>
shell后台执行命令-crontab
查看>>
jQuery |添加标签元素/内容
查看>>
oracle 动态注册和静态注册
查看>>
linux 压缩以及归档
查看>>
将VMware Workstation 12 Pro的虚拟网卡修改为自己希望的IP网段
查看>>
Java文件读取 中文乱码
查看>>
【极品手机推荐】安卓3G运存16G内存,相机1300+500,三星高画质显示J7109|J7108
查看>>
《乐在C语言》一2.2 数据类型
查看>>
《科学+ 预见人工智能》——物理学家的管理方式
查看>>
Ceph分布式存储学习指南1.10 iRODS
查看>>
Linux有问必答:怎么用CheckInstall从源码创建一个RPM或DEB包
查看>>