日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

solidity智能合约[7]-整型与运算

發布時間:2023/12/31 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solidity智能合约[7]-整型与运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

整型變量

整數是現實中處理最多的單位,在solidity中的整數類型有int和uint,int類型可以存儲負數,uint類型只能夠存儲非負數。
int類型:int8,int16,int24,int32…int256
uint類型:uint8,uint16,uint24,uint32…uint256

后面的數字代表的是計算機的最小存儲單位:位。 1個字節代表8位。類型以一個字節遞增,最大到256位,也就是32個字節。
int == int256
uint == uint256

整型運算

1、加
2、減
3、乘
4、除
5、取余數
6、平方

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//1、加
function add(uint a,uint b) public pure returns(uint){
? ? return a+b;
}
//2、減
function sub(uint a,uint b) public pure returns(uint){
? ? return a-b;
}
//3、乘
?function cheng(uint a,uint b) public pure returns(uint){
? ? return a*b;
}
//4、除
function chu(uint a,uint b) public pure returns(uint){
? ? return a/b;
}
//5、取余數
? function yu(uint a,uint b) public pure returns(uint){
? ? return a%b;
}
//6、平方
function pingfang(uint a,uint b) public pure returns(uint){
? ? return a**b;
}

整型溢出

整數如果處理不當,會發生溢出效應。如下面的函數overflow。
函數的功能為執行+1的操作。 當傳遞4、返回5. 傳遞200,返回201,但是當傳遞255的時候,會返回0,這是由于發生了溢出。
要理解溢出的本質,需要明白整型在計算機中的存儲方式。

1
2
3
4
5
// 1111 1111
//10000 0000
function overflow(uint8 a) public pure returns(uint8){
? ?return a +1;
}

整型在底層的存儲方式

計算機最小的存儲單位為位,存儲0或者1。 下面的圖片描述了以位標示的二進制代碼101轉換為10進制后的計算方式。

底層存儲方式

以此類推,可知道,uint8在內存中占8位,最大值為全部都存儲1的時候,轉換為10進制為255。

uint8最大值

當加一之后,
1111 1111
變為了
10000 0000
但是只能存儲8位,所以截斷之后,變為了
0000 0000

所以返回結果為0

  • 本文鏈接:?https://dreamerjonson.com/2018/11/10/solidity-7/

  • 版權聲明:?本博客所有文章除特別聲明外,均采用?CC BY 4.0 CN協議?許可協議。轉載請注明出處!

轉載于:https://blog.51cto.com/13784902/2320198

總結

以上是生活随笔為你收集整理的solidity智能合约[7]-整型与运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。