Solidity
什麼是 uint256?
關於 Solidity,什麼是 UINT256?
從https://ethereum.org/token的令牌範例:
/* This creates an array with all balances */ mapping (address => uint256) public balanceOf;
除了作為通用計算中的變數類型之外,我還希望在乙太坊世界中獲得更好的理解和背景。為什麼不直接使用 INT?假設它是特定類型的 Integer,“U”表示什麼?
關於Solidity…
這實際上是一個更一般的電腦科學問題,最好在 Stack Overflow 上回答。
冒著重複@Ismael 所連結的內容的風險……
U
-無符號(表示該類型只能表示正整數,不能表示正負整數)INT
- 整數256
- 256 位大小上下文: EVM(乙太坊虛擬機)使用 256 位作為其字長。請參閱:EVM 中 256 位字背後的基本原理
Solidity 中的整數:
uint256
(uint
是別名) 是一個無符號整數,它具有:
- 最小值 0
- 最大值 2^256-1 = 115792089237316195423570985008687907853269984665640564039457584007913129639935 //78 個十進制數字
int256
(int
是別名) 是一個有符號整數,它具有:
- -2^255 的最小值 = -57896044618658097711785492504343953926634992332820282019728792003956564819968
- 最大值 2^255-1 = 57896044618658097711785492504343953926634992332820282019728792003956564819967
例如,在 Solidity 中,我們可以編寫以下程式碼:
uint8 public constant decimals = 6; uint256 public constant totalSupply = 1000000*10**uint256(decimals); // 1000000000000
PS 在 Solidity 中
int
/uint
有 256 位大小是不尋常的,因為有像 C#/Java 這樣的流行語言int
具有 32 位大小的數據類型:
- -2^31 = -2147483648 的最小值
- 最大值 2^31-1 = 2147483647