姜富耀 孔壹社区成员,致力于区块链开发技术共享博客:http://jiangfuyao.com数据类型整型
uint8 无符号 8位整数 (0-255)
无符号8位
uint8 0 ~ 255
0000 0000 ~ 1111 1111
-> 12^0 + 12^1 + 12^2 + …+ 12^8
int8 有符号8位 -128 ~ 127
1111 1111 负数 -127
0111 1111 正数 +127
无符号只能存正数
浮点型
float32
float64
byte 类似 uint8
rune 类似int32
uintptr 无符号整型,主要用于 放指针。
布尔型
true false
var b bool = true
字符类型
string
var str string
进制转换十进制 转 二进制二进制转十进制
1101 (2进制)
= 1×2^0+0×2^1+1×2^2+1×2^3
= 1+0+4+8 = 13
转化成十进制要从右到左用二进制的每个数去乘以2的相应次方
不过次方要从0开始
负数转二进制,先取反,再加1
把负数的二进制 变成十进制,先 首位 不变,后面的取反,算出十进制结果+1
补码=反码+1
补码位 不计算十进制,只用来表示+-
小数 转二进制
小数部分×2 ,如果小数部分为0,停止*2,乘的过程整数变成1,则为1,小数部分得到的结果不需要倒过来。
整数部分分开算。
小数部分 还原十进制,0.011
0×2^-1 + 1×2^-2 + 1×2^-3
1×2^-2 = 1除以 2^2
十进制转二进制 位数不够8的倍数 前面填0
计算机 用补码方式 ,保存数据、
原码、反码、补码:
正数反码补码都是本身
负数 反码 除了符号位 其他的取反,补码+1
八进制,二进制 互转
以小数为基础每三位一份分开,不够三位以小数点为基础向两边补0
例如:010100.011101
010/100.011/101
每份各自进制转换:2 / 4. 3/ 5
so……=24.35
三位二进制 代表 八进制
二进制 十六进制转换
十进制:10 11 12 13 14 15
十六进制用字母代替:A B C D E F
四位二进制 代表 十六进制
1011 /1001/1011.1001
结果: B 9 B . 9
运算符
% 求余
golang 不能 ++a
a++ 只能单独一行。
!= 不等于
== 等于
逻辑运算符
&& 与 如果两边的操作数都是True,则条件True,否则为False。
或 如果两边的操作数有一个 True,则条件 True,否则为 False。
! 取反 如果条件为 True,则逻辑 NOT 条件 False,否则为 True。
& 与 其功能是参与运算的两数各对应的二进位相与。
其功能是参与运算的两数各对应的二进位相或
^ 异或 其功能是参与运算的两数各对应的二进位相异或。
按位运算符 异或
0 ^ 1 得 1
1 ^ 1 得 0
0 ^ 0 得 0
1 ^ 0 得 1
赋值运算符
+= 相加后再赋值 C += A 等于 C = C + A
-= 相减后再赋值 C -= A 等于 C = C - A
*= 相乘后再赋值 C= A 等于 C = C * A
/= 相除后再赋值 C /= A 等于 C = C / A
%= 求余后再赋值 C %= A 等于 C = C % A
^= 按位异或后赋值 C ^= 2 等于 C = C ^ 2
= 按位或后赋值 C = 2 等于 C = C 2
不通过中间变量 交换两个变量的方法:
加减法:
a = a+b
b = a-b
a = a-b
异或法:效率高
a = a^b
b = a^b
a = a^b
一个值 和0 相 ^ 为它本身
自己 ^ 自己 = 0
赋值法:
a, b = b , a
日后随着 学习打怪的不断深入,会解锁其他的高级教程。
期待 吗? 那就关注下面 公众号 随时锁定区块链开发学习教程进度 :)
区块链开发技术共享野生极客
`
领取专属 10元无门槛券
私享最新 技术干货