亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

长子县| 奉贤区| 泰宁县| 保山市| 洪江市| 建德市| 罗平县| 大宁县| 石渠县| 三都| 微山县| 泸西县| 台安县| 南丹县| 河间市| 于都县| 西安市| 永宁县| 历史| 乡宁县| 都昌县| 鄄城县| 华蓥市| 安宁市| 三门峡市| 商南县| 镇安县| 禄丰县| 汕尾市| 含山县| 绥滨县| 彩票| 阜阳市| 呼伦贝尔市| 正安县| 钦州市| 姜堰市| 出国| 仙游县| 贵州省| 昂仁县|