首頁 > 後端開發 > Golang > 主體

如何最有效地檢查 big.Int 是否為零?

Mary-Kate Olsen
發布: 2024-11-25 05:59:14
原創
292 人瀏覽過

How Can I Most Efficiently Check if a big.Int is Zero?

更快的 big.Int 0 測試

挑戰:

優化檢查 big.Int值是否為的程式碼等於0.

解決方案:

強調效率,建議直接檢查big.Int 的二進位表示,而不是與零初始化的實例進行比較。

big.Int 透過 Int.Bits() 提供對其原始位元組表示的存取。這個公開的切片維護對底層數組的引用,避免了昂貴的複製。

檢定 0:

文件指定 big.Int 零值等於 0。因此,空的 Bits() 切片表示零值,因為 nil 是切片的零值。此檢查比傳統比較更快:

if len(i1.Bits()) == 0 {
  // i1 is 0
}
登入後複製

或者,可以使用 Int.BitLen(),因為它確認 0 的位元長度為 0:

if i1.BitLen() == 0 {
  // i1 is 0
}
登入後複製

基準:

比較時序顯示了顯著的性能收益:

BenchmarkCompare: 13.3 ns/op
BenchmarkBits: 0.656 ns/op
BenchmarkBitLen: 1.11 ns/op
登入後複製

附加說明:

如果🎜>附加說明:

以上是如何最有效地檢查 big.Int 是否為零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板