91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

高安市| 定西市| 荥经县| 利辛县| 酒泉市| 玉树县| 冀州市| 怀宁县| 贵德县| 泽库县| 四会市| 佳木斯市| 墨玉县| 隆安县| 彭水| 丰宁| 克山县| 会泽县| 龙南县| 高陵县| 云林县| 青冈县| 桐柏县| 焦作市| 余庆县| 红桥区| 土默特右旗| 军事| 阿瓦提县| 尼木县| 都江堰市| 南岸区| 渭南市| 梅州市| 永川市| 东至县| 蒙自县| 宜丰县| 景谷| 宜春市| 门源|