Golang基础学习(六)运算符
程序员文章站
2022-05-18 17:08:23
...
运算符
介绍
- 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 其他运算符
算数运算符
-
对数值类型的变量进行运算
- +正号
- -负号
- +、-、*、/(除)、%(取余)
- ++:自增
- –:自减
- +字符串相加
-
/(除)
- 运算符都是整数,会去掉小数部分,保留整数部分 10/4=2
- 保留小数部分,需要有浮点数参与运算 10.0/4=2.5
-
%(取模)
- 公式:a % b = a - a / b * b
- -10 % 3 = -1
- 10 % 3 = 1
- -10 % -3 = -1
-
注意事项
- / 整数之间,只保留整数部分舍弃小数部分
- %(取模),本质a % b = a - a / b * b
- Golang中 ++ 或 – 只能当做一个独立语句使用。不能这样使用a=i++
- ++ 或 – 只能写在变量后面
关系运算符
-
结果都是bool型,要么true,要么false
-
关系运算符组成的表达式,称为关系表达式
-
经常用在if结构或者for循环结构
-
==、!=、<、>、<=、>=
逻辑运算符
-
连接多个条件,结果也是一个bool
-
&&(两边都为真,才为真)、||(只要有一个为真,就为真)、!(取反)
-
&& 短路与(第一个条件为false,第二个条件不判断),|| 短路或(第一个条件为true,第二个条件不判断)
赋值运算符
-
将某个运算后的值,赋给指定的变量
-
=、+=、-=、*=、/=、%=
-
<<=、>>=、&=(按位与后赋值)、^=(按位异或后赋值)、|=(按位或后赋值)
-
运算顺序是从右到左
-
左边只能是变量,右边可以是变量、表达式、常量值
-
a += 3,等价于 a = a + 3
交换a,b的值
a = a + b
b = a - b
a = a - b
运算符优先级
- 单目运算(对一个变量进行运算)、赋值运算是从右向左
位运算符
- &、|、^、<<、>>
其他运算符
-
&取地址
-
*指针变量
-
Golang中不支持三目运算符。Golang的设计理念:一种事情有且只有一种方法完成
键盘输入语句
- fmt.Scanln() 获取一行的输入
- fmt.Scanf() 可以按指定的格式输入
package main
import (
"fmt"
)
func main(){
// 接收控制台输入
var name string
var age byte
fmt.Println("请输入姓名:")
fmt.Scanln(&name)
fmt.Println("请输入年龄:")
fmt.Scanln(&age)
fmt.Println("用户输入的姓名是:", name)
fmt.Println("用户输入的年龄是:", age)
var sex bool
var sal float64
fmt.Println("请输入性别、薪资,使用逗号隔开")
fmt.Scanf("%t,%f", &sex, &sal)
fmt.Println("用户输入的性别是:", sex)
fmt.Println("用户输入的薪资是:", sal)
}
原码、反码、补码
- 二进制最高位是符号位:0表示正数,1表示负数
- 正数的原码、反码、补码都是一样
- 负数的反码=它的原码符号位不变,其它位取反
- 负数的补码=它的反码+1
- 0的反码,补码都是0
- 计算机运算的时候,都是以补码的方式运算的
&、|、^
- & :按位与,同时为1才为1
- | :按位或,有1就为1
- ^ :按位异或,不同才为真
<<、>>
- << 左移 :符号位不变,低位补0
- ‘>> ’右移 :低位溢出,符号位不变,并用符号位补溢出的高位