Int

它是有符号类型,它可以表示正数和负数。 每次增加8位。
int8 -127 127
int16 -65535 65535

int256

Uint

它是无符号类型,它只能表示正数(包括0)。每次增加8位。
uint8 0 127
uint16 0 65535

uint256

基本运算(+、-、*、/)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pragma solidity ^0.8.0;

contract Math {
function add(int x, int y) pure public returns (int) {
return x + y;
}

function sub(int x, int y) pure public returns (int){
return x-y;
}

function mul(int x,int y) pure public returns (int){
return x*y;
}

function div(int x,int y) pure public returns (int){
return x/y;
}
}

与、或、非、异或

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function and_op(int x, int y) pure public returns (int) {
return x&y;
}

function or_op(int x,int y) pure public returns (int){
return x|y;
}

function not_op(int x) pure public returns (int){
return ~x;
}

function xor_op(int x,int y) pure public returns (int){
return x^y;
}

位移

1
2
3
4
5
6
7
function move_left(int x,uint y) pure public returns (int){
return x << y;
}

function move_right(int x, uint y) pure public returns (int){
return x>>y;
}

x << y 表示x的二进制位向左移动y位,x乘以2的n次方。
x >> y 表示x的二进制位向右移动y位,x除以2的n次方。
注:位移操作是否溢出情况。

幂运算

1
2
3
function power(int x,uint y) pure public returns(int){
return x**y;
}

模运算

1
2
3
function mod(int x,int y) pure public returns (int){
return x%y;
}