go语言中运算符
Go语言学习笔记(运算符)-day01
go语言中与其他语言一样,存在多种运算符,下表列出了go语言中的运算符类型
算数运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
算数运算符
| 运算符 | 描述 |
|---|---|
| + | 相加 |
| - | 相减 |
| * | 相乘 |
| / | 相除 |
| % | 取余 |
a := 10
b := 20
fmt.Println(a + b) // 相加
fmt.Println(a - b) // 相减
fmt.Println(a * b) // 相乘
fmt.Println(a / b) // 相除
fmt.Println(a % b) // 取余
关系运算符
关系运算符,只返回true和false,成立则返回true,不成立则返回false
| 运算符 | 描述 |
|---|---|
| > | 大于 |
| < | 小于 |
| == | 等于 |
| >= | 大于等于 |
| <= | 小于等于 |
| != | 不等于 |
a := 10
b := 20
fmt.Println(a > b) //大于
fmt.Println(a > b) //小于
fmt.Println(a == b) //等于
fmt.Println(a >= b) //大于等于
fmt.Println(a <= b) //小于等于
fmt.Println(a != b) //不等于
逻辑运算符
| 运算符 | 描述 |
|---|---|
| && | 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 |
| || | 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 |
| ! | 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。 |
// 逻辑与和逻辑或的应用
var a int = 18
var b int = 60
if a >= 18 && b <=60{
fmt.Println("苦逼干活")
}else if a < 18 || b>=60{
fmt.Println("不用干活")
}
// 逻辑非的应用
isChina := false
fmt.Println(isChina) //结果是false
fmt.Println(!isChina) //结果是true
位运算符
| 运算符 | 描述 |
|---|---|
| & | 按位与,两个都为1则值为1,否则值为0 |
| | | 按位与,两个有一个为1则值为1,否则值为0 |
| ^ | 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 (两位不一样则为1) |
| << | 左移n位就是乘以2的n次方。 “a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。 |
| >> | 右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。 |
// 按位与
a := 10
b := 2
fmt.Println(a & b)
/* 把a转换成2进制是1010 b转换位2进制是10
10 1010
2 10
010
*/
// 按位或
a := 10
b := 2
fmt.Println(a | b)
/* 把a转换成2进制是1010 b转换位2进制是10
10 1010
2 10
1010
*/
// 按位异或
a := 10
b := 11
fmt.Println(a ^ b)
/* 把a转换成2进制是1010 b转换位2进制是1011
10 1010
11 1011
0001
*/
//按位向左移动
a := 10
b := 11
fmt.Println(a << b) // 将a转换位二进制后向左移动11位
/* 把a转换成2进制是1010
10 1010
向左移动十一位 101000000000000
*/
//按位向右移动
a := 10
b := 1
fmt.Println(a >> b) // 将a转换位二进制后向右移动1位 向右移动1位是在原来的基础上减少1位
/* 把a转换成2进制是1010
10 1010
向左移动一位 101
*/
赋值运算符
| 运算符 | 描述 |
|---|---|
| = | 变量赋值的正常符号 |
| += | 先进行加法运算在进行赋值 |
| -+ | 先进行减法运算在进行赋值 |
| *= | 先进行乘法运算在进行赋值 |
| /= | 先进行除法运算在进行赋值 |
| %= | 先进行取余运算在进行赋值 |
| &= | 先进性按位与运算在赋值 |
| |= | 先进行按位或运算在赋值 |
| ^= | 先在行按位异或运算在赋值 |
| >>= | 先按照向左按位移动运算在赋值 |
| <<= | 先按照向右按位移动运算在赋值 |
// 赋值运算符
a := 10
b := 20
a += b // a = a + b
a -= b // a = a - b
a *= b // a = a * b
a /= b // a = a / b
a %= b // a = a % b
a &= b // a = a & b
a |= b // a = a | b
a ^= b // a = a ^ b
a >>= b // a = a >> b
a <<= b // a = a << b
go语言中运算符的更多相关文章
- 关于C语言中运算符优先级的一次错误
好久没碰编程了,最近有点闲,又拾起来.做了个简单的网络测试程序,测试的时候发现有条语句老是获取不到结果.如下: if(portnumber=atoi(argv[1])>65535) portnu ...
- 001_C语言中运算符的优先级
总的来说就是: 1. 最高:单目运算符(() > * 解引用,&取地址,-取相反数,++等自增(或减)运算,!取反运算...); 2. 次之:双目运算符(算数运算符 > 移位运算符 ...
- C语言中运算符的口决
- C语言中的运算符
1. 在C语言中运算符包括:算术运算符.关系运算符.赋值运算符.逻辑运算符 2.用运算符把变量.常量连接起来的式子就是表达式 3.我们阅读一个表达式,从表达式的功能和表达式的值来看 4. 算术运算符和 ...
- C语言中关于逗号运算符的理解
在C语言中运算符有很多,包括算数运算符.关系运算符.赋值运算符.位运算符.逻辑运算符.三目运算符.sizeof运算符.逗号运算符等等,那今天我们就重点来给大家讨论一下关于逗号运算符的一些运算规则. 首 ...
- c++中运算符重载
c++语言中运算符重载都是通过函数来实现的,所以其实质为函数重载,当c++语言原有的一个运算符被重载之后,它原来所具有的语义并没有消失,只相当于针对一个特定的类定义了一个新的运算符. <1> ...
- c语言中逗号运算符和逗号表达式
原文:c语言中逗号运算符和逗号表达式 C语言提供一种特殊的运算符——逗号运算符.用它将两个表达式连接起来.如: 3+5,6+8称为逗号表达式,又称为“顺序求值运算符”.逗号表达式的一般形式为 表达式1 ...
- c语言中类型转换与赋值运算符、算术运算符、关系运算符、逻辑运算符。原码、反码、补码。小解。
类型转换 自动转换 小范围的类型能够自动转换成大范围的类型.short->int->long->float->double 强制类型转换 (类型名)变量或数值 #include ...
- Java语言中的面向对象特性总结
Java语言中的面向对象特性 (总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知 ...
随机推荐
- HTTP助记
1** 信息,服务器收到请求,需要请求者继续执行操作 100 continue 继续,客户端应继续请求 101 swithching protocls 切换协议,服务器根据客户端的请求切换协议.只能切 ...
- W12Scan和taoman批量刷edusrc(单机)
昨天看到教育漏洞群里面发了利用w12scan和taoman两个开源工具批量刷edusrc的帖子链接, https://www.bugku.com/thread-3810-1-1.html 跟着帖子上面 ...
- react路由初探(1)
import React from 'react'; import logo from './logo.svg'; import './App.css'; class About extends Re ...
- BJOI2015 隐身术
落谷. Description 给你两个串 \(A.B\).询问 \(B\) 中有多少个非空子串和 \(A\) 的编辑距离不超过 \(K\). Solution 发现 \(K \le 5\),考虑可以 ...
- 题解 P5401 [CTS2019]珍珠
蒟蒻语 这题太玄学了,蒟蒻写篇题解来让之后复习 = = 蒟蒻解 假设第 \(i\) 个颜色有 \(cnt_i\) 个珍珠. \(\sum\limits_{i=1}^{n} \left\lfloor\f ...
- 【CH 弱省互测 Round #1 】OVOO(可持久化可并堆)
Description 给定一颗 \(n\) 个点的树,带边权. 你可以选出一个包含 \(1\) 顶点的连通块,连通块的权值为连接块内这些点的边权和. 求一种选法,使得这个选法的权值是所有选法中第 \ ...
- KM 算法
KM 算法 可能需要先去学学匈牙利算法等二分图相关知识. 模板题-洛谷P6577 [模板]二分图最大权完美匹配 给 \(n\) 和 \(m\) 与边 \(u_i,v_i,w_i(1\le i\le m ...
- C++异常之三 异常处理接口声明
异常处理接口声明 1 一般为了方便程序员阅读代码,提高程序的可读性,会将函数中的异常类型声明至函数头后方,不用一行一行的找抛出内容: 2 这里要注意一点,这属于C++的标准语法,但在VS中这个操作不被 ...
- 用正则怎么将html文件中文字取出进行ASCII码转换?
用正则怎么将html文件中文字取出?今天碰到这个问题,思来想去尝试了好几种方法,历经一阵头脑风暴,最后终于还是解决了,想想还是来记录一下.一共定义了三个函数,包含正则切割.正则判断对象开头.ASCII ...
- Java基础数据类型详解
在Java中的数据类型一共有8种,大致分为整型(4个)浮点型(2个)布尔(1)字符(1个) 分类 类型 默认值 占用字节 范围 整型 byte 0 1 = 8 bit -2^7 - 2^7 short ...