Solidity编程语言(5)--布尔型和整型

布尔型
bool类型同其他语言一样,取值为true或false, 其运算操作有!、||、&&、!=、==,注意这里并没有|、&

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
pragma solidity >=0.4.22 <0.6.0;
contract EgBool {
bool isOne;
bool isTwo;
function operation() public {
isOne = true;
if (isOne){
// dosomething
}

if (!isOne){
// dosomething
}

if (isOne || isTwo ){
// dosomething
}

if (isOne && isTwo ){
// dosomething
}

if (isOne != isTwo ){
// dosomething
}

if (isOne == isTwo ){
// dosomething
}
}
}

整型
整型包含无符号uint和有符号int两种类型,每种类型有多种长度,比如uint8、uint64、int128等等,长度范围是8至256,相差8个长度,8,16,24,32……256。其中uint和uint256一样,int和int256一样。运算操作有比较、位操作和算术操作三种。

  • 比较操作:<= , < , == , != , >= , >
  • 位操作: &(与) , |(或) , ^ (异或), ~ (非)
  • 算术操作:+ , - , * , /, % , (乘方,求幂) ,<<(左移) , >>(右移)
    其中左移和右移操作,a<<b,可以理解为a乘以2的b次方,表示为a*2
    b,同理右移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
    39
    pragma 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;
    }
    }

注意

  1. 有符号整数是不能够使用”**”操作,
  2. 有符号和无符号不能进行类型转换,不能同时参数运算,比如c = d + e;