无论是保存在硬盘里面作永久储存,还是保存在内存/寄存器里面作为计算的临时储存,信息在计算机里面需要一个表示方法,或者叫做保存方法.
首先,可以先来看一下c语言都有哪些信息的类型,或者说我们编程时候都用到哪些信息类型:
其中,布尔型可以用简单的 整型0&整型1 表示,就不单独说明.
由于一些基本的概念,比如字符串用ASCII码/UTF-8编码表示,整型根据不同的长度有,是否有符号,会有不同的范围,下面只挑选不同信息类型(或者叫数据类型)的值得提一下的点作说明.
整型无符号形式不用多说,而有符号的表示形式除了简单的使用最高位作为符号位(1000 0001 表示-1),还有两种表现形式:补码表示和反码表示.
实际上,补码相对于原码和反码,对于计算机的计算是更优化的.大多数现代计算机都用补码表示有符号数.
补码中, 如 1000 0001,将最高有效位解释成负权,而后, 所以 1000 1111 = **-**2^7 **+**2^3 **+**2^2 **+**2^1 **+**2^0 = -113
而反码就与补码类似,不过补码的负权为 - 2 ^(w-1), 反码的负权为 -2^(w-1) - 1, 其中w为整型长度
补码相比反码和原码(即最高位表示符号位的形式)的差别在于:
补码的0000 0000表示0,没有-0表示,而反码和原码都存在一个-0表示 (反码为1111 1111, 原码为 1000 0000)
补码的加减乘除运算,都等价于将补码转换为无符号数的加减乘除,再转换回补码,而反码和原码都要先作相应的转换.(至于为什么反码和补码不能直接运算,可以参考这个文章: 原码, 反码, 补码 详解)
书中介绍了一种浮点型表示的标准: IEEE浮点表示.
IEEE浮点表示用是三部分来表示一个浮点数: 符号位,尾数,阶码
其中,符号位s直接编码正负; 尾数和阶码编码浮点数的两部分值得: 指数E和小数M…浮点数V可以表示为: V = (-1)^s * M * 2^E
# git
alias gs='git status '
alias ga='git add '
# usage: gc 'comment info'
alias gc='git commit -m '
alias gd='git diff '
alias gsh='git show '
alias grm='git rm '
alias gck='git checkout '
alias gps='git push origin '
alias gpl='git pull origin '
alias gpl='git branch | grep \* | cut -d " " -f 2 | xargs git pull origin '
alias grs='git reset '
alias gl='git log '
alias gb='git branch '
alias gmg='git merge '
alias gst='git stash '
alias gf='git fetch'
alias grollback="gl | grep commit | head -n 1 | awk '{print \$2}' | xargs -I {} git reset --hard {}"
alias u='gck online
gb -D develop
gb -D master
git fetch
gck develop
gck master
'
# other
alias ll='ls -al'
alias ip='ifconfig | grep 172'
# docker
alias de='docker exec -it '
alias dp='docker ps'
alias dpa='docker ps -a'
alias di='docker images'
alias drmi='docker rmi '
alias drm='docker rm '
alias dr='docker run '
alias dk='docker kill '
# k8s
alias k=kubectl;
alias kgpw="kubectl get pods -o wide ";
alias kgpa="kubectl get pods -A ";
unset HISTSIZE;
alias di="docker images";
alias dp="docker ps";
alias dpa="docker ps -a";
alias drm="docker rm";
alias drmi="docker rmi"
go vet 是 golang 官方自带的代码静态检查工具, 可以帮助程序员检查出编译不会出错但有 bug 的代码
go vet [./path/to/package 相对路径 | path/to/gopath 能访问到的 package | path/to/package 的绝对路径]
go vet 自带多个分析器, 遍历入参的目录/文件, 执行每个分析器, 找出代码的问题
分析器有(可以通过 go tool vet help 看到):
bools, ex: if a == 1 && a == 0 if a == 1 && a == 1ifaceassert, ex:
var itf interface{
Read()
}
newPtr := itf.(io.Reader)
ref https://www.cnblogs.com/xiao987334176/p/12696740.html
apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get install docker-ce docker-ce-cli containerd.io
kubeadm init --kubernetes-version=1.18.1 --apiserver-advertise-address=192.168.128.130 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
```
### 安装 flannel
```shell
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml && grep 10.244 -n kube-flannel.yml && sed -i 's/10.244.0.0\/16/[pod network cidr]/' && kubectl apply -f kube-flannel.yml
安装
lsb_release -cs 查看 linux 发行号
usermod -a -G [group] [username] / groupmems -g [group] -a [username]
修改大文件
nat
dnat
snat
fsfsdfadfa
ref: