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; }
|