go基础——运算符
2024-09-05 09:50:59
算数运算符
/*
算术运算符:+,-,*,/,%,++,--
*/
a := 10
b := 3
sum := a + b //加减乘类似
fmt.Printf("%d + %d = %d\n", a, b, sum)
div := a / b //取商
mod := a % b //取余,取模
fmt.Printf("%d ÷ %d = 商%d,余%d\n", a, b, div, mod)
b++
fmt.Println(b)
b--
fmt.Println(b)
10 + 3 = 13
10 ÷ 3 = 商3,余1
4
3
关系运算符
/*
关系运算符:>,<,>=,<=,==,!=
关系运算结果总是bool类型:true,false
*/
res1 := a > b //true
res2 := a < b //false
res3 := a == b //false
res4 := a != b //true
fmt.Println(res1, res2, res3, res4)
true false false true
逻辑运算符
/*
逻辑运算符:操作数必须是bool,运算结果也是bool
逻辑与:&&
逻辑或:||
逻辑非:!
*/
f1 := true
f2 := false
f3 := false
r1 := f1 && f2 //false
r2 := f1 && f2 && f3 //false
fmt.Println(r1, r2)
r3 := f1 || f2 //true
r4 := f1 || f2 || f3 //true
r5 := f2 || f3 //false
fmt.Println(r3, r4, r5)
r6 := !f1 //false
fmt.Println(r6)
false false
true true false
false
位运算符
/*
位运算符:将数值,转为二进制后,按位操作
按位与:&
对应位的值都为1才为1,有一个为0就为0
按位或:|
对应位的值都为0才位0,有一个位1就位1
异或:^
二元:a^b,对应位的值相同则为0,不同则为1
一元:^a,按位取反,1->0, 0->1
位清空:&^
a &^ b, 对于b上的每位数值
如果为0,则取a对应位上的数值
如果位1,则取0
按位左移:<<, a << b, 将a转为二进制,向左移动b位
按位右移:>>, a >> b, 将a转为二进制,向右移动b位
*/
v1 := 60 //二进制:0011 1100
v2 := 13 //二进制:0000 1101
fmt.Printf("%d,%b\n", v1, v1)
fmt.Printf("%d,%b\n", v2, v2)
w1 := v1 & v2 //0000 1100
w2 := v1 | v2 //0011 1101
w3 := v1 ^ v2 //0011 0001
w4 := v1 &^ v2 //0011 0000
fmt.Printf("%d,%b\n", w1, w1)
fmt.Printf("%d,%b\n", w2, w2)
fmt.Printf("%d,%b\n", w3, w3)
fmt.Printf("%d,%b\n", w4, w4)
fmt.Printf("%d,%b\n", ^v1, ^v1)
w5 := v1 << 2 //1111 0000
fmt.Printf("%d,%b\n", w5, w5)
60,111100
13,1101
12,1100
61,111101
49,110001
48,110000
-61,-111101
240,11110000
赋值运算符
/*
赋值运算符:
=, +=, -=, *=, /=, %=, <=, >=, &=, |=, ^=
=, 右侧数值赋值给左边变量
+=, a += 2 相当于a = a + 2。
-=, *=, /=, %= 与 += 类似
*/
最新文章
- jq添加数组
- java 读写properties (配置)文件
- [aspx]控件及代码小例
- 中断是CPU的机制
- Where is Vasya?
- Supervisord管理
- LeetCode C++ 解题报告
- H5移动端性能优化
- hdu1028(整数划分问题)
- CATransform3D的使用以及各个参数的含义
- J2EE十三个规范小结
- centos 手动增加swap分区
- bootstrap&mdash;&mdash;bootstrap-table(2)
- Antlr v4入门教程和实例
- Go开发之路 -- Go语言基本语法
- 将Java项目从maven迁移到gradle
- ASP------字符串与HTML格式相互转换
- Cassandra2.0.8导入到eclipse运行
- there is already &#39;RtController&#39; bean method 项目报错
- ( 转 ) mysql 实战 or、in与union all 的查询效率
热门文章
- html 基础 vscode的常用快捷键
- [ css ] 实现漂亮的输入框动画(借鉴自panjiachen的后台管理项目)
- Object.keys()方法 返回对象属性数组
- 方法覆盖 和toString方法的作用
- 机器学习|线性回归三大评价指标实现『MAE, MSE, MAPE』(Python语言描述)
- 微信小程序使用Websocket
- 基本的sql语法
- sql审核-避免离线sql导致的db集群故障
- Sharding Sphere的分库分表
- Keil MDK STM32系列(九) 基于HAL和FatFs的FAT格式SD卡TF卡读写