golang指數(shù)運(yùn)算操作
我就廢話不多說了,大家還是直接看代碼吧~
func main() {
fmt.Println(exponent (5,3))
}
//a的n次方
//超出uint64的部分會(huì)丟失
func exponent (a,n uint64) uint64 {
result := uint64(1)
for i := n ; i > 0; i >>= 1 {
if i&1 != 0 {
result *= a
}
a *= a
}
return result
}
補(bǔ)充:Golang 位運(yùn)算之 &^
看Golang源代碼,突然看到一個(gè) a &^ b的位操作,有點(diǎn)懵,在通過不斷的寫測(cè)試驗(yàn)證,終于弄清楚了是怎么回事,在這里記錄一下,避免忘記。
在弄清楚a &^ b是怎么回事之前,我們先看一個(gè)我們熟悉的 a += b:
a += b ==> a = a + b
其實(shí)&^也是一樣:
a &^ b ==> a ^ (a & b)
只是把 = 換成了 ^ 。
還有更復(fù)雜一點(diǎn)的,但萬變不離其宗,如 a &^= b:
a &^= b,分兩步分解:
==> a = a &^ b
==> a = a ^ (a & b)
在Golang里面對(duì)于這種表達(dá)式都可以套用+=這種我們熟悉的,復(fù)雜一點(diǎn)的就按步驟分解。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Go語言實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者模式的方法總結(jié)
這篇文章主要介紹了在?Go?語言中實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模式的多種方法,并重點(diǎn)探討了通道、條件變量的適用場(chǎng)景和優(yōu)缺點(diǎn),需要的可參考一下2023-05-05
go語言切片slice使用細(xì)節(jié)和注意事項(xiàng)整理大全
這篇文章主要給大家介紹了關(guān)于go語言切片slice使用細(xì)節(jié)和注意事項(xiàng)整理的相關(guān)資料,需要的朋友可以參考下2024-05-05
Golang線上內(nèi)存爆掉問題排查(pprof)與解決
這篇文章主要介紹了Golang線上內(nèi)存爆掉問題排查(pprof)與解決,涉及到數(shù)據(jù)敏感,文中代碼是我模擬線上故障的一個(gè)情況,好在我們程序都有添加pprof監(jiān)控,于是直接通過go tool pprof分析,需要的朋友可以參考下2024-04-04
Golang實(shí)現(xiàn)四層負(fù)載均衡的示例代碼
做開發(fā)的同學(xué)應(yīng)該經(jīng)常聽到過負(fù)載均衡的概念,今天我們就來實(shí)現(xiàn)一個(gè)乞丐版的四層負(fù)載均衡,并用它對(duì)mysql進(jìn)行負(fù)載均衡測(cè)試,感興趣的可以了解一下2023-07-07
GO使用阿里云,解決go get下載項(xiàng)目慢或無法下載的情況
這篇文章主要介紹了GO使用阿里云,解決go get下載項(xiàng)目慢或無法下載的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

