主页 > imtoken怎么退出账号 > 学习solidity一起写智能合约——整型(uint和int)
学习solidity一起写智能合约——整型(uint和int)
前言
整数一般用的比较多,在各种合约中都会看到整数的存在,所以在学习的路上也少不了这个类型
环境:
混音编译器点我跳转
文本
我们在sol中遇到了很多整数数据以太坊符号,所以我们的sol提供了两种数据类型的整数:
有符号整数(int):这里我们可以理解为一个有正负值的整数
Unsigned integer(uint):无符号整数,这里是只存在正数和0
为了有更好的内存控制,sol提供了int8、int16、int32等无符号整数类型,一直到int256
我们的无符号整数也是如此,uint8、uint16、uint32 ... uint256
那么我们需要注意上面的选择。 对于0~256位的数据,我们可以使用uint8。 然后我们用int8把有符号的负数存到正数-128~127。 根据实际情况,我们可以上去。 能。
有同学会好奇,这个8,16,32...256是什么意思?
这里是我们的二进制以太坊符号,因为我们的计算机是由0101编码组成的,所以底层存储逻辑是二进制的,所以这里00000000用二进制表示0,11111111用二进制表示256。 细心的同学会发现这个数是8,就在这里,所以我们的存储是这样存储的
int AND 运算符
整数类型支持的运算符包括三种比较运算符、位运算符和算术运算符
比较运算符
(超过)
按位运算符
&&(和)
|| (或者)
^(异或)
~(位反转)
算术运算符
+
-
一元运算符“-”
一元运算符“+”
*
/
%
**
>
又看了一遍,估计是左右移动的操作有问题。 这是一个解释
左移:a>b可以理解为a除以2的b次方
运算符使用如下:
uint256 public _uintNum = 12345; // 整数结果:12345
uint256 public _uintNum1 = _uintNum + 1; //相加结果:12346
uint256 public _uintNum2 = 2**2; // 索引结果:4
uint256 public _uintNum3 = 7 % 2; //余数结果:1
bool public _boolnum = _uintNum2 > _uintNum3;//判断结果:true
防范措施