布尔型
bool类型同其他语言一样,取值为true或false, 其运算操作有!、||、&&、!=、==,注意这里并没有|、&
1 | pragma solidity >=0.4.22 <0.6.0; |
整型
整型包含无符号uint和有符号int两种类型,每种类型有多种长度,比如uint8、uint64、int128等等,长度范围是8至256,相差8个长度,8,16,24,32……256。其中uint和uint256一样,int和int256一样。运算操作有比较、位操作和算术操作三种。
- 比较操作:<= , < , == , != , >= , >
- 位操作: &(与) , |(或) , ^ (异或), ~ (非)
- 算术操作:+ , - , * , /, % , (乘方,求幂) ,<<(左移) , >>(右移)
其中左移和右移操作,a<<b,可以理解为a乘以2的b次方,表示为a*2b,同理右移a>>b表示为a/2**b。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39pragma solidity >=0.4.22 <0.6.0;
contract EgInt {
int i = 0;
int8 i8 = -1;
int256 i256 = 256;
uint ui = 0;
uint ui8 = 1;
uint256 ui256 = 256;
function operation() public {
if ( i < i8 || i <= i8 || i == i8 || i != i8 || i > i8 || i >= i8 ){
//dosomeing
}
int a;
int b;
int c;
c = a & b;
c = a | b;
c = a ^ b;
c = ~ b;
c = a + b;
c = a - b;
c = a * b;
c = a / b;
c = a % b;
c = a << b;
c = a >> b;
//c = a**b;
uint d;
uint e;
uint f;
f = d**e;
//c = d**e;
}
}
注意
- 有符号整数是不能够使用”**”操作,
- 有符号和无符号不能进行类型转换,不能同时参数运算,比如c = d + e;