go语言基础之运算符
一、运算符分类
1.1 算术运算符
|
运算符 |
术语 |
示例 |
结果 |
|
+ |
加 |
10 + 5 |
15 |
|
- |
减 |
10 - 5 |
5 |
|
* |
乘 |
10 * 5 |
50 |
|
/ |
除 |
10 / 5 |
2 |
|
% |
取模(取余) |
10 % 3 |
1 |
|
++ |
后自增,没有前自增 |
a=0; a++ |
a=1 |
|
-- |
后自减,没有前自减 |
a=2; a-- |
a=1 |
1.2 关系运算符
|
运算符 |
术语 |
示例 |
结果 |
|
== |
相等于 |
4 == 3 |
false |
|
!= |
不等于 |
4 != 3 |
true |
|
< |
小于 |
4 < 3 |
false |
|
> |
大于 |
4 > 3 |
true |
|
<= |
小于等于 |
4 <= 3 |
false |
|
>= |
大于等于 |
4 >= 1 |
true |
1.3 逻辑运算符
|
运算符 |
术语 |
示例 |
结果 |
|
! |
非 |
!a |
如果a为假,则!a为真; 如果a为真,则!a为假。 |
|
&& |
与 |
a && b |
如果a和b都为真,则结果为真,否则为假。 |
|
|| |
或 |
a || b |
如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
示例:
package main //必须有一个main包
import "fmt"
func main() {
fmt.Println("4 > 3 结果:", 4 > 3)
fmt.Println("4 != 3 结果:", 4 != 3)
//非
fmt.Println("!(4 > 3) 结果:", !(4 > 3))
fmt.Println("!(4 != 3) 结果:", !(4 != 3))
//&& 与, 并且,左边右边都为真,结果才为真, 其它都为假
fmt.Println("true && true 结果:", true && true)
fmt.Println("true && false 结果:", true && false)
// ||, 或者, 左边右边都为假,结果才为假,其它都为真
fmt.Println("true || false 结果:", true || false)
fmt.Println("false || false 结果:", false || false)
//非0就是真,0就是假(但是go语言的bool类型和int不兼容)
//判断一个数,在0-11的范围
a := 11 //a :=8 结果:true 和 a := 11 结果:false
fmt.Println("0 <= a && a <= 10 结果为:", 0 <= a && a <= 10)
}
#执行结果:
4 > 3 结果: true
4 != 3 结果: true
!(4 > 3) 结果: false
!(4 != 3) 结果: false
true && true 结果: true
true && false 结果: false
true || false 结果: true
false || false 结果: false
0 <= a && a <= 10 结果为: false
1.4 位运算符
|
运算符 |
术语 |
说明 |
示例 |
|
& |
按位与 |
参与运算的两数各对应的二进位相与 |
60 & 13 结果为12 |
|
| |
按位或 |
参与运算的两数各对应的二进位相或 |
60 | 13 结果为61 |
|
^ |
异或 |
参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1 |
60 ^ 13 结果为240 |
|
<< |
左移 |
左移n位就是乘以2的n次方。 左边丢弃,右边补0。 |
4 << 2 结果为16 |
|
>> |
右移 |
右移n位就是除以2的n次方。 右边丢弃,左边补位。 |
4 >> 2 结果为1 |
1.5 赋值运算符
|
运算符 |
说明 |
示例 |
|
= |
普通赋值 |
c = a + b 将 a + b 表达式结果赋值给 c |
|
+= |
相加后再赋值 |
c += a 等价于 c = c + a |
|
-= |
相减后再赋值 |
c -= a 等价于 c = c - a |
|
*= |
相乘后再赋值 |
c *= a 等价于 c = c * a |
|
/= |
相除后再赋值 |
c /= a 等价于 c = c / a |
|
%= |
求余后再赋值 |
c %= a 等价于 c = c % a |
|
<<= |
左移后赋值 |
c <<= 2 等价于 c = c << 2 |
|
>>= |
右移后赋值 |
c >>= 2 等价于 c = c >> 2 |
|
&= |
按位与后赋值 |
c &= 2 等价于 c = c & 2 |
|
^= |
按位异或后赋值 |
c ^= 2 等价于 c = c ^ 2 |
|
|= |
按位或后赋值 |
c |= 2 等价于 c = c | 2 |
1.6 其他运算符
|
运算符 |
术语 |
示例 |
说明 |
|
& |
取地址运算符 |
&a |
变量a的地址 |
|
* |
取值运算符 |
*a |
指针变量a所指向内存的值 |
1.7 运算符优先级
在Go语言中,一元运算符拥有最高的优先级,二元运算符的运算方向均是从左至右。
下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:
|
优先级 |
运算符 |
|
7 |
^ ! |
|
6 |
* / % << >> & &^ |
|
5 |
+ - | ^ |
|
4 |
== != < <= >= > |
|
3 |
<- |
|
2 |
&& |
|
1 |
|| |
示例:
10 - 2 * 8 - 4 ===> 10 - 16 -4 10 - 2 * (8 - 4) ===> 10 - 8 = 2
go语言基础之运算符的更多相关文章
- C语言基础知识-运算符与表达式
C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...
- GO学习-(6) Go语言基础之运算符
Go语言基础之运算符 运算符用于在程序运行时执行数学或逻辑运算. 运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符 描述 + 相加 - ...
- C#-语言基础+数据类型+运算符
一.C#语言基础 新建项目:文件→新建→项目→Visual C#(默认.NET Framework 4.5)→控制台应用程序 1.项目结构 (1)项目后缀 .config ——配置文件(存放配置参数文 ...
- C语言基础学习运算符-赋值运算符
简单赋值 在C语言里,运算符=并不表示相等,而是一个赋值运算符.这意味着,符号=的左边该是一个可修改的变量名,而右边是赋给该变量的值. 如下程序语句: i = i+; 在数学上,该等式无法成立.而作为 ...
- [Python学习笔记1]Python语言基础 数学运算符 字符串 列表
这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...
- C语言基础学习运算符-基本算术运算符
C语言中用于基本算术运算的运算符有:+,-,*,%,/.这些运算符的用法和你想像到的基本无异: 加法运算符 “+”使得它两侧的值被加到一起. 减法运算符“-”用它前面的数减去后面的数. 乘法由“*”表 ...
- C语言基础学习运算符-关系运算符
比较大小 首先,我们得先了解一下布尔类型.C语言的C99标准支持布尔类型,关键字为_Bool,用于表示逻辑值true与false.C语言用值1表示true, 用值0表示false.因此布尔类型实际上是 ...
- Java 语言基础之运算符
使用运算符之后,肯定有返回结果. 六种运算符: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三元运算符 1. 算术运算符 加(+), 减(-), 乘(*), 除(/), 取余(%), 自 ...
- 2.1 Go语言基础之运算符
运算符用于在程序运行时执行数学或逻辑运算. 一.运算符 Go 语言内置的运算符有: 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 1.1 算数运算符 运算符 ...
随机推荐
- Windows 命令行切换目录
Windows 命令行切换目录 特别注意:切换到其它盘符不需要 cd 命令 1. 切换到 C 盘根目录 打开终端 cmd 后,输入cd C:\(一定要加上后面的反斜扛) 2.切换到 C 盘子目录 打开 ...
- SQL Join简单介绍
前沿 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接.外联接和交叉联接等. 如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时 ...
- [Gym - 100517K] Kingdom Division 2 二分
大致题意: 给出一个凸包,以及凸包内的两个点p1,p2,求有多少条经过凸包顶点的直线能够将凸包分割为两部分,且给出的两点分别属于不同的部分 枚举凸包的顶点,二分求出p1,p2线段左边的最大坐标L以及右 ...
- powershell 获取 CPU 物理 / 逻辑核心数
转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 获取 CPU 逻辑核心数的方法为:总逻辑核心数 = 物理核心数 * 每核逻辑核心数 其中 ...
- android studio 可以汉化的 文件 地方
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 汉化包 百度云盘 下载地址:https://pan.baidu.com/s/1pLjwy ...
- [APIO2015]巴厘岛的雕塑 --- 贪心 + 枚举
[APIO2015]巴厘岛的雕塑 题目描述 印尼巴厘岛的公路上有许多的雕塑,我们来关注它的一条主干道. 在这条主干道上一共有\(N\)座雕塑,为方便起见,我们把这些雕塑从 1 到\(N\)连续地进行 ...
- [BZOJ4651][NOI2016]网格(Tarjan)
下面直接给出结论,相关证明见官方题解. 1.若跳蚤数不超过1或仅有两只跳蚤且相邻,则答案为-1. 2.若跳蚤形成的连通块个数大于1,则答案为0. 3.若跳蚤之间建图存在割点,则答案为1. 4.否则为2 ...
- [BZOJ 4719] 天天爱跑步
Link: BZOJ 4719 传送门 Solution: 感觉求LCA又有了新姿势啊:$Tarjan$离线$O(n+m)$ 每次递归返回时将子树和父节点合并,如果询问节点已访问过则LCA就是已合并的 ...
- bzoj 2286
第一道"虚树"题目(好吧,我也不知道这是不是虚树,但和虚树的思想肯定是一样的,都是简化树结构) 这一类算法核心思想都是简化树结构,只取我们必须的节点和一些信息,然后在简化后的树结构 ...
- 扩展gcd codevs 1200 同余方程
codevs 1200 同余方程 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 求关 ...