# 计算机基础知识

# 1.Go 运算符相关知识

# 1. 运算符优先级

  1. 运算符有不同的优先级,优先级就是表达式运算中的运算顺序
  2. 如下表格中上方的优先级优先于下方运算符
  3. 只有单目运算符,赋值运算符是从右向左运算的
  4. 运算符有限顺序大致为:
    1. 括号,++, --
    2. 单目运算符
    3. 算术运算符
    4. 移位运算
    5. 关系运算符
    6. 位运算符
    7. 逻辑运算符
    8. 赋值运算符
    9. 逗号
分类描述关联性
后缀( ) [] -> . ++ --左到右
单目+ - !~ (type) * & sizeOf右到左
乘法* / %左到右
加法+ -左到右
移位<< >>左到右
关系< <= > >=左到右
相等 (关系)== !=左到右
按位 AND&左到右
按位 XOR^左到右
按位 OR|左到右
逻辑 AND&&左到右
逻辑 OR||左到右
赋值运算符= += -= /= %= >>= <<= &= ^= |=右到左
逗号,左到右

# 2. 原码,反码,补码

  1. 二进制的最高位是符号位: 0 表示正数,1 表示负数
  2. 正数的原码,反码,补码都一样
  3. 负数的反码 = 其原码的符号位不变,其他位取反 (0 ->1, 1->0)
    • 1 ===> 原码 (0000 0001) 反码 (0000 0001) 补码 (0000 0001)
    • -1 ===> 原码 (1000 0001) 反码 (1111 1110) 补码 (1111 1111)
  4. 负数的补码 = 其反码加一
  5. 0 的反码,补码 都是 0
  6. 在计算机运行时,都是一补码的方式来运算的 1+1 1-1 = 1+(-1)

# 3.GoLang 代理设置

Go 默认代理: GOPROXY=https://proxy.golang.org,direct

go env -w GOPROXY=https://goproxy.cn,direct
goproxy.io
https://goproxy.io,direct
七牛云
https://goproxy.cn
阿里云
https://mirrors.aliyun.com/goproxy/

# 4. 文件路径

  1. 获取当前工作目录路径
path, err := os.Getwd
  1. 将多个路径进行拼接,自动添加路径分隔符
path := filepath.Join(path1, path2, `main.go`)

3. 获取当前执行程序的路径

func getCurrentPath() string {
	if ex, err := os.Executable(); err == nil {
		return filepath.Dir(ex)
	}
	return "./"