iota和左移右移的用法
为什么80%的码农都做不了架构师?>>>
在go语言中iota比较特殊,是一个被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字就会自动加1
左移运算符”<<”是双目运算符。左移n位就是乘以2的n次方。 其功能把”<<”左边的运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0。
右移运算符”>>”是双目运算符。右移n位就是除以2的n次方。 其功能是把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数。
例一:
package iotaimport "fmt"func Test() {const(c1 = iota //c1=0c2 = iota //c2=1c3 = iota //c3=2)fmt.Println("c1 = ",c1," c2 = ",c2," c3 = ",c3,"\n")const(a = 1 << iota //a = 1b = 1 << iota //b = 2c = 1 << iota //c = 4)fmt.Println("a = ",a," b = ",b," c = ",c,"\n")const(v1 = iota //v1 = 0v2 //v2 = 1v3 //v3 = 2)fmt.Println("v1 = ",v1," v2 = ",v2," v3 = ",v3,"\n")const(x = 1 <<iota //x = 1y //y = 2z //z = 4)fmt.Println("x = ",x," y = ",y," z = ",z)
}
例二:
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
iota和左移右移的用法相关推荐
- java中左移运算符解释_java左移右移运算符
位运算(只对byte.short.char.int.long有效) 左移和右移运算相当于实现整数乘以或除以2的n次方 2.7三元运算符表达式1的结果为true时,就为第二个表达式,如果为...... ...
- c语言左移15位,关于c语言中左移右移运算符的问题
参照<c与指针>,在c语言中左移时,不论算术左移还是逻辑左移效果都是相同的.而且对于有符号和无符号类型执行相同的操作,即按照二进制位向左左移N位.例如: 1 clude 2 intmain ...
- python左移右移位运算_Python这些位运算的妙用,绝对让你大开眼界
位运算的性能大家想必是清楚的,效率绝对高.相信爱好源码的同学,在学习阅读源码的过程中会发现不少源码使用了位运算.但是为啥在实际编程过程中应用少呢?想必最大的原因,是较为难懂.不过,在面试的过程中,在手 ...
- java中的 31 和左移右移的关系简述
java中的 31 和左移右移的关系简述 任何数乘以31 等于 这个数左移 五位 减去这个数 n * 31 == (n << 5) - n " << " ...
- 一维数组反转c语言_C语言实现数组的循环左移,右移,翻转的示例
数组结合指针可以实现很多有趣的功能,比如下面这个程序: 假设数组为 : 12345 如果左移一次即为:23451 ,依次类推 如果右移一次即为:51234 ,依次类推 翻转则为:54321 我们来实现 ...
- 左移右移位运算_计算机硬件技术基础M2——计算机运算基础(二)
在上一篇中,我们学习到了计算机底层的一些机器码,以及一些行业标准,这一章,我们将接着学习机器码的一些比较与相关计算. 一.浮点数表示和定点数的比较 ① 当字长相同时,浮点数表示的范围要大得多. ②浮点 ...
- 位运算之左移右移运算之详解
先看如下一段左移右移的代码及其结果: 代码 #include "stdio.h" char leftshift(char i, int n) { if(n < 0) retu ...
- EASYUI- EASYUI左移右移 GRID中值
EASYUI左移右移 GRID中值 $("#addAll").click(function(){var ids = [];var names = [];var srcrows = ...
- 图片放大缩小旋转左移右移镜像倒影android
图片放大缩小旋转左移右移镜像倒影 demo: TestImage 1. 将 meinv.jpg 图片拷贝到以下目录TestImage\app\src\main\res\mipmap-hdpi 1.An ...
最新文章
- [html] H5的哪些特性需要https支持呢?
- lombak-插件使用
- Spring Cloud教程 (二)应用程序上下文服务层次结构
- Linux之VMware Workstation16 pro上安装redhat
- C语言 流缓冲 Stream Buffering
- RN上使用react-native-video视频播放器插件
- 使用Struts之ActionForm
- 甘肃教育杂志甘肃教育杂志社甘肃教育编辑部2022年第15期目录
- 家装软件相关算法和技术归纳
- 基于python3的群聊聊天室
- 双模控制器很耗电_双模电动车控制器主要功能
- 面向对像(8day) 正则表达式,日志格式,json模块
- modelsim仿真加速注意点
- VMware ESXI 5.5 死机 红屏问题
- 开源jar包被各网站封锁收费?教你如何搜索并下载想要jar
- 当 BBR 面对时延抖动
- 码市:Coding 进入软件众包领域
- Linux中常用软件安装(基于Ubuntu)
- day 3:蓝桥杯python 杨辉三角知识点
- 下载Bing首页图片最简教程