Go語(yǔ)言中符號(hào) “ ^ ” 不再用于次方,而是表示“按位異或的運(yùn)算”
具體的運(yùn)算規(guī)則如下:
按位異或 ^ : 兩位一個(gè)為 0, 一個(gè)為 1 ,結(jié)果為 1 ,否則為 0(位表示二進(jìn)制的機(jī)器碼)
例子如下:
所以Go語(yǔ)言中2^3 = 1 不是 8(注意:計(jì)算機(jī)都是按照補(bǔ)碼進(jìn)行運(yùn)算)
那么Go語(yǔ)言中的次方是什么:(下圖所示)
(官方文檔是個(gè)好幫手)
補(bǔ)充:leetcode golang實(shí)現(xiàn)一個(gè)數(shù)的整數(shù)次方 pow(x, n)
我就廢話(huà)不多說(shuō)了,大家還是直接看代碼吧~
package main
/*
實(shí)現(xiàn)一個(gè)數(shù)的整數(shù)次方
pow(x, n)
*/
func pow(x float64, n int) float64 {
if x == 0 {
return 0
}
result := calPow(x, n)
if n 0 {
result = 1 / result
}
return result
}
func calPow(x float64, n int) float64 {
if n == 0 {
return 1
}
if n == 1 {
return x
}
// 向右移動(dòng)一位
result := calPow(x, n>>1)
result *= result
// 如果n是奇數(shù)
if n1 == 1 {
result *= x
}
return result
}
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 使用go求冪的幾種方法小結(jié)
- Golang 運(yùn)算符及位運(yùn)算詳解
- golang指數(shù)運(yùn)算操作
- golang切片反序?qū)嵗?/li>
- Go語(yǔ)言實(shí)現(xiàn)牛頓法求平方根函數(shù)的案例