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

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

1
2
3
4
5
6
7
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 11110111 1111 ?(-127127)
二进制类型分为原码 反码 补码,计算机为了保持数据的可分辨性(正负区别)及消除正零、负零的问题,最终采用补码形式存储数据
所以int8的取值范围实际为 1000 0000 ~ 0111 1111(-128~127)

正二进制数:

1
2
反码 = 原码
补码 = 原码

负二进制数:

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

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

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

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

Go语言运算符

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

无++a的写法

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

1
2
3
var a = 10
console.log(++a++)
++a 得到的是一个常量,无法为常量进行++运算
Author

Ludis

Posted on

2018-01-12

Updated on

2018-02-13

Licensed under

Comments