整数类型
int / uint :分别表示有符号和无符号的不同位数的整型变量。 支持关键字 uint8 到 uint256 (无符号,从 8 位到 256 位)以及 int8 到 int256,以 8 位为步长递增。 uint 和 int 分别是 uint256 和 int256 的别名。
运算符:
- 比较运算符: <= , < , == , != , >= , > (返回布尔值)
- 位运算符: & , | , ^ (异或), ~ (位取反)
- 算数运算符: + , - , 一元运算 - , 一元运算 + , , / , % (取余) , * (幂), << (左移位) , >> (右移位)
- 除法总是会截断的(仅被编译为 EVM 中的 DIV 操作码), 但如果操作数都是 字面常数(literals) (或者字面常数表达式),则不会截断。
除以零或者模零运算都会引发运行时异常。
移位运算的结果取决于运算符左边的类型。 表达式 x << y 与 x 2*y 是等价的, x >> y 与 x / 2y 是等价的。这意味对一个负数进行移位会导致其符号消失。 按负数位移动会引发运行时异常。
警告:
由有符号整数类型负值右移所产生的结果跟其它语言中所产生的结果是不同的。 在 Solidity 中,右移和除是等价的,因此对一个负数进行右移操作会导致向 0 的取整(截断)。 而在其它语言中, 对负数进行右移类似于(向负无穷)取整。