99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

整數(shù)

2022-05-11 18:06 更新

int/ uint:各種大小的有符號(hào)和無符號(hào)整數(shù)。關(guān)鍵字uint8to uint256(8無符號(hào) 8 到 256 位)和int8to int256。uint和分別是和int的別名。uint256int256

運(yùn)營(yíng)商:

  • 比較:<=, <, ==, !=, >=, >(計(jì)算為bool)
  • 位運(yùn)算符:&, |, ^(按位異或),~(按位否定)
  • 移位運(yùn)算符:(<<左移)、>>(右移)
  • 算術(shù)運(yùn)算符:+, -, 一元-(僅適用于有符號(hào)整數(shù)), *, /, %(模), **(冪)

對(duì)于整數(shù)類型X,您可以使用type(X).min和type(X).max訪問該類型可表示的最小值和最大值。

警告

Solidity 中的整數(shù)被限制在一定范圍內(nèi)。例如,使用uint32,這0取決于。對(duì)這些類型執(zhí)行算術(shù)運(yùn)算有兩種模式:“包裝”或“未檢查”模式和“已檢查”模式。默認(rèn)情況下,算術(shù)始終是“檢查”的,這意味著如果操作的結(jié)果超出類型的值范圍,則調(diào)用將通過失敗的斷言恢復(fù)。您可以使用 切換到“未選中”模式。更多細(xì)節(jié)可以在關(guān)于 unchecked的部分中找到。2**32 - 1 unchecked { ... }

比較

比較的值是通過比較整數(shù)值獲得的值。

位操作

對(duì)數(shù)字的二進(jìn)制補(bǔ)碼表示執(zhí)行位運(yùn)算。這意味著,例如.~int256(0) == int256(-1)

轉(zhuǎn)移

移位操作的結(jié)果具有左操作數(shù)的類型,截?cái)嘟Y(jié)果以匹配類型。右操作數(shù)必須是無符號(hào)類型,嘗試按有符號(hào)類型移位會(huì)產(chǎn)生編譯錯(cuò)誤。

可以通過以下方式使用乘以 2 的冪來“模擬”移位。請(qǐng)注意,對(duì)左操作數(shù)類型的截?cái)嗫偸窃谧詈髨?zhí)行,但沒有明確提及。

  • x << y等價(jià)于數(shù)學(xué)表達(dá)式。x * 2**y

  • x >> y等價(jià)于數(shù)學(xué)表達(dá)式,向負(fù)無窮舍入。x / 2**y

警告

在該版本之前,負(fù)數(shù)0.5.0右移相當(dāng)于向零舍入的數(shù)學(xué)表達(dá)式,即,使用向上舍入(向零)而不是向下舍入(向負(fù)無窮大)進(jìn)行右移。x >> yxx / 2**y

筆記

移位操作永遠(yuǎn)不會(huì)像算術(shù)運(yùn)算那樣執(zhí)行溢出檢查。相反,結(jié)果總是被截?cái)唷?/p>

加法、減法和乘法

加法、減法和乘法具有通常的語(yǔ)義,在上溢和下溢方面有兩種不同的模式:

默認(rèn)情況下,檢查所有算術(shù)是否不足或溢出,但可以使用unchecked block禁用此功能,從而導(dǎo)致算術(shù)包裝??梢栽谠摬糠种姓业礁嘣敿?xì)信息。

該表達(dá)式-x等價(jià)于where is 的類型。它只能應(yīng)用于簽名類型。如果為負(fù),則的值可以為正。二進(jìn)制補(bǔ)碼表示還有另一個(gè)警告:(T(0) - x)Tx-xx

如果有,則不適合正值范圍。這意味著有效,并且在檢查模式下使用表達(dá)式 將導(dǎo)致斷言失敗。int x = type(int).min;-xunchecked { assert(-x == x); }-x

分配

由于運(yùn)算結(jié)果的類型始終是操作數(shù)之一的類型,因此整數(shù)除法始終產(chǎn)生整數(shù)。在 Solidity 中,除法向零舍入。這意味著.int256(-5) / int256(2) == int256(-2)

請(qǐng)注意,相比之下,文字除法會(huì)產(chǎn)生任意精度的小數(shù)值。

筆記

除以零會(huì)導(dǎo)致Panic 錯(cuò)誤無法通過 禁用此檢查。unchecked { ... }

筆記

該表達(dá)式是除法導(dǎo)致溢出的唯一情況。在檢查算術(shù)模式下,這將導(dǎo)致斷言失敗,而在包裝模式下,該值將為.type(int).min / (-1)type(int).min

模數(shù)

模運(yùn)算產(chǎn)生操作數(shù) 除以操作數(shù)后的余數(shù),其中和。這意味著模運(yùn)算的結(jié)果與其左操作數(shù)(或零)相同,并且對(duì)負(fù)數(shù)成立:a % nranq = int(a / n)r = a - (n * q)a % n == -(-a % n)a

  • int256(5) % int256(2) == int256(1)

  • int256(5) % int256(-2) == int256(1)

  • int256(-5) % int256(2) == int256(-1)

  • int256(-5) % int256(-2) == int256(-1)

筆記

帶零的模會(huì)導(dǎo)致恐慌錯(cuò)誤。無法通過 禁用此檢查。unchecked { ... }

求冪

求冪僅適用于指數(shù)中的無符號(hào)類型。求冪的結(jié)果類型始終等于基數(shù)的類型。請(qǐng)注意它足夠大以容納結(jié)果并為潛在的斷言失敗或包裝行為做好準(zhǔn)備。

筆記

在檢查模式下,求冪只對(duì)小基數(shù)使用相對(duì)便宜的exp操作碼。對(duì)于 的情況x**3,表達(dá)式x*x*x可能更便宜。在任何情況下,gas 成本測(cè)試和優(yōu)化器的使用都是可取的。

筆記

請(qǐng)注意,0**0EVM 將其定義為1.


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)