中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

solidity智能合約[54]-安全—取反

發布時間:2020-07-01 12:18:39 來源:網絡 閱讀:448 作者:jonson_jackson 欄目:開發技術

相反數

有符號的solidity整數類型如果有N位。那么其值的范圍是-2^(N-1) to 2^(N-1)-1。 這意味著該類型負數的最大值取相反數之后不能夠被接收。

相反數陷阱

如下的Negation合約說明了負數在面臨取相反數操作時可能遇到的問題。由于對于負數取相反數。實則是取負數的補碼操作。因此、當某int類型最大的負數取相反數的時候,會是其本身。如當int8的最大值-128傳遞到negate8執行取反操作的時候,會返回128。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
contract Negation {

   function negate8(int8 _i) public pure returns(int8) {
       return -_i;
   }

   function negate16(int16 _i) public pure returns(int16) {
       return -_i;
   }

   int8 public d = negate8(127); // -127
   int8 public a = negate8(-128); // -128
   int16 public b = negate16(-128); // 128
   int16 public c = negate16(-32768); // -32768
}

解決辦法

1、使用更大的類型來接收可以避免出現問題。
2、檢查是否達到了該類型的最大負數。

  • 本文鏈接: https://dreamerjonson.com/2018/11/25/solidity-54-negation/

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

solidity智能合約[54]-安全—取反

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳春市| 奉贤区| 华亭县| 蓝田县| 南靖县| 台湾省| 进贤县| 泸州市| 澳门| 凉山| 东港市| 萝北县| 盘山县| 平阳县| 讷河市| 交城县| 凤城市| 天柱县| 临沂市| 黔南| 大竹县| 双辽市| 维西| 将乐县| 贵德县| 封开县| 买车| 阳朔县| 岚皋县| 黎川县| 宜川县| 平顺县| 新丰县| 琼海市| 安仁县| 会理县| 榕江县| 子洲县| 威信县| 南昌县| 锡林郭勒盟|