# 计算机基础知识
# 1.Go 运算符相关知识
# 1. 运算符优先级
- 运算符有不同的优先级,优先级就是表达式运算中的运算顺序
- 如下表格中上方的优先级优先于下方运算符
- 只有单目运算符,赋值运算符是从右向左运算的
- 运算符有限顺序大致为:
- 括号,++, --
- 单目运算符
- 算术运算符
- 移位运算
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 逗号
分类 | 描述 | 关联性 |
---|
后缀 | ( ) [] -> . ++ -- | 左到右 |
单目 | + - !~ (type) * & sizeOf | 右到左 |
乘法 | * / % | 左到右 |
加法 | + - | 左到右 |
移位 | << >> | 左到右 |
关系 | < <= > >= | 左到右 |
相等 (关系) | == != | 左到右 |
按位 AND | & | 左到右 |
按位 XOR | ^ | 左到右 |
按位 OR | | | 左到右 |
逻辑 AND | && | 左到右 |
逻辑 OR | || | 左到右 |
赋值运算符 | = += -= /= %= >>= <<= &= ^= |= | 右到左 |
逗号 | , | 左到右 |
# 2. 原码,反码,补码
- 二进制的最高位是符号位: 0 表示正数,1 表示负数
- 正数的原码,反码,补码都一样
- 负数的反码 = 其原码的符号位不变,其他位取反 (0 ->1, 1->0)
- 1 ===> 原码 (0000 0001) 反码 (0000 0001) 补码 (0000 0001)
- -1 ===> 原码 (1000 0001) 反码 (1111 1110) 补码 (1111 1111)
- 负数的补码 = 其反码加一
- 0 的反码,补码 都是 0
- 在计算机运行时,都是一补码的方式来运算的 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. 文件路径
- 获取当前工作目录路径
- 将多个路径进行拼接,自动添加路径分隔符
| path := filepath.Join(path1, path2, `main.go`) |
3. 获取当前执行程序的路径
| func getCurrentPath() string { |
| if ex, err := os.Executable(); err == nil { |
| return filepath.Dir(ex) |
| } |
| return "./" |