Solidity

什麼是 uint256?

  • December 2, 2021

關於 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

引用自:https://ethereum.stackexchange.com/questions/29946