golang指数运算操作
我就废话不多说了,大家还是直接看代码吧~
func main() { fmt.Println(exponent (5,3)) } //a的n次方 //超出uint64的部分会丢失 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 }
补充: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里面对于这种表达式都可以套用+=这种我们熟悉的,复杂一点的就按步骤分解。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
golang中为什么不存在三元运算符详解
三元运算符广泛存在于其他语言中,比如: python: val = trueValue if expr else falseValue javascript: const val = expr ? trueValue : falseValue c.c++: const char *val = expr ? "trueValue" : "falseValue"; 然而,被广泛支持的三目运算符在golang中却是不存在的!如果我们写出类似下面的代码: val := ex
-
golang简单位运算示例
本文实例讲述了golang简单位运算.分享给大家供大家参考,具体如下: 复制代码 代码如下: // http://play.golang.org/p/idG7Ri_krU package main import "fmt" func main() { var n uint8 = 6 fmt.Printf("%s\n%08b\n%08b\n\n", "6<<1 左移1位", n, n<<1) fmt.
-
golang 实现interface{}转其他类型操作
golang中的string是可以转换为byte数组或者rune数组 但是其实byte对应的类型是uint8,而rune对应的数据类型就是int32 所以string可以转换为四种类型 //interface转其他类型----返回值是interface,直接赋值是无法转化的 //interface 转string var a interface{} var str5 string a = "3432423" str5 = a.(string) fmt.Println(str5) //i
-
golang 获取当前执行程序路径的操作
我就废话不多说了,大家还是直接看代码吧~ 1.获取当前执行程序路径 func execPath() (string, error) { file, err := exec.LookPath(os.Args[0]) if err != nil { return "", err } re, err := filepath.Abs(file) if err != nil { logs.Error("The eacePath failed: %s\n", err.Error
-
golang 实现tcp server端和client端,并计算RTT时间操作
server端代码: package main import ( "fmt" "net" "log" "os" ) func main() { addr := "0.0.0.0:8787" tcpAddr, err := net.ResolveTCPAddr("tcp",addr) if err != nil { log.Fatalf("net.ResovleTCPAddr f
-
golang指数运算操作
我就废话不多说了,大家还是直接看代码吧~ func main() { fmt.Println(exponent (5,3)) } //a的n次方 //超出uint64的部分会丢失 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 } 补充:Golang 位运算
-
Python实现的概率分布运算操作示例
本文实例讲述了Python实现的概率分布运算操作.分享给大家供大家参考,具体如下: 1. 二项分布(离散) import numpy as np from scipy import stats import matplotlib.pyplot as plt ''' # 二项分布 (binomial distribution) # 前提:独立重复试验.有放回.只有两个结果 # 二项分布指出,随机一次试验出现事件A的概率如果为p,那么在重复n次试验中出现k次事件A的概率为: # f(n,k,p) =
-
Python复数属性和方法运算操作示例
本文实例讲述了Python复数属性和方法运算操作.分享给大家供大家参考,具体如下: #coding=utf8 ''''' 复数是由一个实数和一个虚数组合构成,表示为:x+yj 一个负数时一对有序浮点数(x,y),其中x是实数部分,y是虚数部分. Python语言中有关负数的概念: 1.虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数 2.复数由实数部分和虚数部分构成 3.表示虚数的语法:real+imagej 4.实数部分和虚数部分都是浮点数 5.虚数部分必须有后缀j或J 复
-
Python矩阵常见运算操作实例总结
本文实例讲述了Python矩阵常见运算操作.分享给大家供大家参考,具体如下: python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包. 一.numpy的导入和使用 from numpy import *;#导入numpy的库函数 import numpy as np; #这个方式使用numpy的函数时,需要以np.开头. 二.矩阵的创建 由一维或二维数据创建矩阵 from numpy import *; a1=array([1,2,3]); a1=ma
-
Golang slice切片操作之切片的追加、删除、插入等
本文介绍了Golang slice切片操作之切片的追加.删除.插入等,分享给大家,具体如下: 一.一般操作 1,声明变量,go自动初始化为nil,长度:0,地址:0,nil func main(){ var ss []string; fmt.Printf("length:%v \taddr:%p \tisnil:%v",len(ss),ss, ss==nil) } --- Running... length:0 addr:0x0 isnil:true Success: process
-
Python常见数字运算操作实例小结
本文实例讲述了Python常见数字运算操作.分享给大家供大家参考,具体如下: Python 解释器可以作为一个简单的计算器:您可以在解释器里输入一个表达式,它将输出表达式的值. 表达式的语法很直白: +, -, * 和/ 和在许多其它语言(如Pascal或C)里一样:括号可以用来为运算分组.例如: >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # 总是返回一个
-
Vue入门之数量加减运算操作示例
本文实例讲述了Vue入门之数量加减运算操作.分享给大家供大家参考,具体如下: 效果图: HTML: <div class="count3"> <ul> <li v-for="(key,idx) in liList" :key="key.id"> {{key.id}},{{idx}} <template> <button class="cut" @click="cu
-
Python list运算操作代码实例解析
这篇文章主要介绍了Python list运算操作代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在操作list的时候,经常用到对列表的操作运算,比如说,列表添加,删除操作,其实,这里面经常回遇到这样一个问题,就是列表的操作容易被混淆了. 有人做了一个总结,这个很清晰,我就不多做阐述了: 1.append() 向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加 2.extend() 向列表尾部追加一个列表,将列表中的每个元
-
TensorFlow基本的常量、变量和运算操作详解
简介 深度学习需要熟悉使用一个框架,本人选择了TensorFlow,一边学习一边做项目,下面简要介绍TensorFlow中的基本常量.变量和运算操作,参考斯坦福大学的cs20si和TensorFlow官网API. 常量 tf.constant() tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=False),value为值,dtype类型,shape为张量形状,name名称.verify_shape默认F
-
python神经网络pytorch中BN运算操作自实现
BN 想必大家都很熟悉,来自论文: <Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift> 也是面试常考察的内容,虽然一行代码就能搞定,但是还是很有必要用代码自己实现一下,也可以加深一下对其内部机制的理解. 通用公式: 直奔代码: 首先是定义一个函数,实现BN的运算操作: def batch_norm(is_training, x, gamma, beta, mo
随机推荐
- Centos 6.5中安装docker的步骤(简洁版)
- Python 字典dict使用介绍
- javascript判断中文的正则
- Android checkbox的listView具体操作方法
- 老生常谈PHP面向对象之注册表模式
- Python正则表达式介绍
- 用asp实现的iframe批量替换工具
- JSP中c:foreach遍历和s:iterator遍历异同实例分析
- 卖jsp编程技巧的那个垃圾的所有实例的答案全部已收集,现将他人收集的实例答案公布出来,大家鉴赏!
- Android 源码如何编译调试
- 并发环境下mysql插入检查方案
- Mysql中文汉字转拼音的实现(每个汉字转换全拼)
- JS实现评价的星星功能
- Python计算字符宽度的方法
- Android实现QQ新用户注册界面遇到问题及解决方法
- 来谈谈搜索引擎优化策略
- 判断机器大小端的两种实现方法
- C#使用SqlDataAdapter对象获取数据的方法
- 由于mysql运行权限导致无法找到 Discuz! 论坛数据表! 的解决方法
- Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)