您好,登錄后才能下訂單哦!
整數是現實中處理最多的單位,在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 | //1、加 |
整數如果處理不當,會發生溢出效應。如下面的函數overflow。
函數的功能為執行+1的操作。 當傳遞4、返回5. 傳遞200,返回201,但是當傳遞255的時候,會返回0,這是由于發生了溢出。
要理解溢出的本質,需要明白整型在計算機中的存儲方式。
1 | // 1111 1111 |
計算機最小的存儲單位為位
,存儲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協議 許可協議。轉載請注明出處!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。