golang指数运算操作
我就废话不多说了,大家还是直接看代码吧~
funcmain(){ fmt.Println(exponent(5,3)) } //a的n次方 //超出uint64的部分会丢失 funcexponent(a,nuint64)uint64{ result:=uint64(1) fori:=n;i>0;i>>=1{ ifi&1!=0{ result*=a } a*=a } returnresult }
补充:Golang位运算之&^
看Golang源代码,突然看到一个a&^b的位操作,有点懵,在通过不断的写测试验证,终于弄清楚了是怎么回事,在这里记录一下,避免忘记。
在弄清楚a&^b是怎么回事之前,我们先看一个我们熟悉的a+=b:
a+=b==>a=a+b
其实&^也是一样:
a&^b==>a^(a&b)
只是把=换成了^。
还有更复杂一点的,但万变不离其宗,如a&^=b:
a&^=b,分两步分解:
==>a=a&^b
==>a=a^(a&b)
在Golang里面对于这种表达式都可以套用+=这种我们熟悉的,复杂一点的就按步骤分解。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。