区块链学习-进制、GO运算符

2018-01-12 04:02:55

int 与 uint 区别 int 表示有符号整数
uint 表示无符号整数

int8    -128~127  
int16   -2^8~2^8  
...

uint8   0~255  
uint16  0~2^16  
...

十进制转二进制

1. 正整数转二进制

正整数使用二除法,得到的结果倒叙即为该十位数的二进制数

2. 负数转二进制

先得到正数对应的二进制数,然后取反,再加一即为该负数的二进制数

3. 小数转二进制

  • 整数部分+小数点+小数部分
  • 整数部分:按照前面的步骤正常转换
  • 小数部分:小数部分乘2,得到结果的整数部分n,若小数部分不为零,继续上面的步骤。最后得到的n的排列即为小数部分

二进制转十进制

1. 正二进制数

正二进制即首位为0的二进制数,转十进制只需每位乘以2的对应次方,然后想加即可。

2. 负二进制数

负二进制数,首先取反,然后按正二进制数计算即可

3. 带小数的二进制数

小数部分每位乘的是2的对应负次方

int8的取值范围解读

int8的取值范围是 1111 1111~0111 1111 ?(-127~127)
二进制类型分为原码 反码 补码,计算机为了保持数据的可分辨性(正负区别)及消除正零、负零的问题,最终采用补码形式存储数据 所以int8的取值范围实际为 1000 0000 ~ 0111 1111(-128~127)

正二进制数:

反码 = 原码
补码 = 原码

负二进制数:

反码 = 除了符号位,原码取反
补码 = 反码+1

二进制转与八进制/十六进制等互转

二转八: 二进制数从(小数点)向两侧每三位一分,不够三位的在两端用0补齐,然后每三位转为对应的八进制数即可 八转二:每位八进制数转为二进制即可

二转n进制/n转二进制 二转n: n进制数的最大可显示值对应的二进制位数为m,二转n进制时每m位等分即可 n转二: 同八转二

Go语言运算符

//Go语言中,以下写法错误:
var a int = 10  
println(a++)

无++a的写法

注:(以下js/c/java...输出报错)

var a = 10  
console.log(++a++)  
++a 得到的是一个常量,无法为常量进行++运算
区块链学习 - Golang初始

系统:Ubuntu 16.0.4 安装 下载:https://golang.org/dl/ 下载linux对应的版本 解压:将源码解压至/usr/local tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz 配置环境变量:export PATH=$PATH:/usr/local/go/bin 检测安装:go version go env HelloBlockChain cd $HOME mkdir golang && cd golang vi index.

Golang数组、map、函数及类

数组/切片 数组声明: 普通声明: var arr = [5]int{} // 长度固定为5,不可扩展,{}中为初始值,默认为0 arr := [5]string{"a", "b", "c", "d"} var arr [5]int // [0, 0, 0, 0] make关键字声明数组切片: var arr = make([], 2, 4) // 长度 len(arr) 为2,容量 cap(arr) 为4,长度决定存储量,容量不够时翻倍 arr := make([], 1, 1) arr = append(arr,