欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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中不支持三目运算符。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
  • ‘>> ’右移 :低位溢出,符号位不变,并用符号位补溢出的高位
相关标签: Golang 运算符