Go学习笔记(三)

位运算符和移位运算符

 

Golang中有3个位运算

分别是 按位与&,按位或|,按位异或^,它们的运算规则是:

按位与&   : 两位全为1,结果为1,否则为0

按位或|     :两位有一个为1,结果为1,否则为0

按位异或^ :两位一个为0,一个为1,结果为1,否则为0

 

比如

2&3 = 0000 0010 = 2

2的补码 0000 0010

3的补码 0000 0011

 

2|3 = 0000 0011 = 3

2的补码 0000 0010

3的补码 0000 0011

 

2^3 = 0000 0001 = 1

2的补码 0000 0010

3的补码 0000 0011

 

-2^2 = 1111 1100 = -4

-4 反码 1111 1011 -》 原码 1000 0100

-2的补码1111 1110

2的补码 0000 0010

 

Golang中的两个移位运算:

>>、<<右移和左移,运算规则:

右移运算符 >> : 低位溢出,符号位不变,并用符号位补益出的高位

左移运算符 << : 符号位不变,低位补0

 

a := 1>>2 (2是代表位移位数)

1的补码0000 0001 -> 0000 0000 = 0


c := 1<<2

1的补码0000 0001 -> 0000 0100 = 4

 

b := -1 >> 2

-1 的补码是 1000 0001 —》  1000 0001 = -1

 

d = -1 << 2

-1 补码是 1000 0001 -> 1000 0100 = -4

 

 

程序流程控制

1、顺序控制

2、分支控制

3、循环控制

 

顺序控制

程序从上到下逐行地执行,中间没有任何判断和跳转。

 

顺序控制举例和注意事项

注意事项

从上到下逐行执行,前提是中间没有任何判断和跳转

Golang中定义遍历时采用合法的前向引用

就是变量要先声明再使用

 

分支控制

让程序有选择的执行,分为三种

1、单分支

2、双分支

3、多分支

 

单分支

基本语法

if 表达式 {

  执行代码

}

注意:只有条件表达式为true,就会执行{}的代码

{}必须要有

 

go支持在一个if中直接定义变量,作用域只在判断你,

if age := 20;age > 18 {

  fmt.Println("要对自己的行为负责")

}

 

双分支

基本语法

说明:当套件表达式成立,即执行代码1,否则执行代码2。 {}也是必须要有

 

多分支

if else if else

else不是必须的

多分支只有一个执行入口

执行完入口以后多分支就退出不再判断

 

嵌套分支

在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支

基本语法

if 条件表达式 {
  if 条件表达式 {

} else {

}

}

 

说明:嵌套分支不宜过多,建议控制在3层内(良好的编程习惯)

 

posted @ 2022-04-24 09:47  黑羽青衣  阅读(35)  评论(0编辑  收藏  举报