Go语言中符号 “ ^ ” 不再用于次方,而是表示“按位异或的运算”
具体的运算规则如下:
按位异或 ^ : 两位一个为 0, 一个为 1 ,结果为 1 ,否则为 0(位表示二进制的机器码)
例子如下:
所以Go语言中2^3 = 1 不是 8(注意:计算机都是按照补码进行运算)
那么Go语言中的次方是什么:(下图所示)
(官方文档是个好帮手)
补充:leetcode golang实现一个数的整数次方 pow(x, n)
我就废话不多说了,大家还是直接看代码吧~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package main
/*
实现一个数的整数次方
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
}
// 向右移动一位
result := calPow(x, n>>1)
result *= result
// 如果n是奇数
if n&1 == 1 {
result *= x
}
return result
}
|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/weixin_43724074/article/details/104796616