当前位置: 首页 > news >正文

海淀区企业网站建设百度网盘客服电话24小时

海淀区企业网站建设,百度网盘客服电话24小时,营销推广ppt,加热器网站怎么做的C语言关于&与&&运算符 我们知道,在很多场景中&和&&通常可以相互代替,那么它们到底有什么不同呢? 先看一段代码 bool a, b, c; c a & b;使用clang -S编译出来的指令如下: movb -5(%rbp), %al …

C语言关于&与&&运算符

我们知道,在很多场景中&和&&通常可以相互代替,那么它们到底有什么不同呢?

先看一段代码

bool a, b, c;
c = a & b;

使用clang++ -S编译出来的指令如下:

	movb	-5(%rbp), %al       # aandb	$1, %almovzbl	%al, %eaxmovb	-6(%rbp), %cl       # bandb	$1, %clmovzbl	%cl, %ecxandl	%ecx, %eax          # a & bcmpl	$0, %eaxsetne	%alandb	$1, %al movb	%al, -7(%rbp)       # c

使用clang++ -S -O3编译出来的指令如下:

	movzbl	-1(%rbp), %edxandb	-2(%rbp), %dl

再看一段代码:

bool a, b, c;
c = a && b;

其汇编代码为:

    xorl	%eax, %eaxtestb	$1, -5(%rbp)        # amovb	%al, -8(%rbp)                   je	.LBB2_2
# %bb.1:movb	-6(%rbp), %al       # bmovb	%al, -8(%rbp)                   
.LBB2_2:movb	-8(%rbp), %al                   andb	$1, %almovb	%al, -7(%rbp)       # c

反汇编一下:

tmp = a;
if(a==1) {tmp = b;
}
c = tmp & 1;

通过对比两段汇编代码就很清晰了,&运算在底层表现为一条指令and,而&&运算实际上需要通过分支的方式实现。

那么能否说明&的效率比&&要高呢?不一定

我们知道,&是与运算,例如要得到a & b的值,就必须分别求得a和b的值。但是&&通过分支的方式实现,要想得到a && b的值,其实不必都求出a和b的值,如果先求出a的值是0,那么就不必再求b了。

再看一段代码:

bool funcA() {}bool funcB() {}int main () {bool c = funcA() & funcB();bool d = funcA() && funcB();
}

上述代码中表达式funcA() & funcB() 与 funcA() && funcB() 哪一个效率更高?

需要具体分析funcA()和funcB()的返回值分布与复杂度,如果funcA()和funcB()复杂度很低,并且大部分情况下返回1,那么funcA() & funcB()的效率可能会高些;如果funcA()和funcB()复杂度较高,并且有可能返回0,那么funcA() && funcB()会高一些。

另外值得一提的是,funcA() && funcB()与funcB() && funcA()哪个效率高?

返回0概率复杂性(耗时)
funcA()a_pza_cost
funcB()b_pzb_cost

funcA() && funcB() 期望耗时为:

a_cost + (1-a_pz) * b_cost

funcB() && funcA() 期望耗时为:

b_cost + (1-b_pz) * a_cost

举个例子

返回0概率复杂性(耗时)
funcA()0.950
funcB()0.840

funcA() && funcB() 期望耗时为54; funcB() && funcA() 期望耗时为50

http://www.hkea.cn/news/588525/

相关文章:

  • 宁波有几个区昭通网站seo
  • 建设企业网站方案网站优化软件哪个好
  • 郑州做网站要搜索引擎最新排名
  • wordpress建好站了打不开首页成都关键词优化排名
  • 京东网站开发需求如何做谷歌优化
  • 微信app开发诊断网站seo现状的方法
  • 做旅行网站网站seo优化多少钱
  • 上海专业网站建设咨询网络销售怎么样
  • 奶茶网页设计图片湖南seo网站多少钱
  • 家里电脑做网站服务器如何建立网址
  • 临西做网站哪里便宜seo专业培训课程
  • 高端网站设计报价表个人网上卖货的平台
  • 广州网站优化推广公司网站优化排名资源
  • 济南网站建设大标网络企业seo服务
  • net域名大网站东莞关键词自动排名
  • 做企业平台的网站怎样进行网络营销吸引顾客
  • 天河网站 建设seo信科分公司谷歌搜索引擎网址
  • 西安网站建设招骋外贸如何推广
  • 网站改版降权武汉seo排名公司
  • 南京哪家公司做企业网站 做得比较好百度seo怎么优化
  • 白云做网站SEO市场营销策略有哪些
  • 做网站用lunx怎么建立一个网站
  • 电商网站开发定制百度推广优化排名
  • 网站备案 法人身份证cba最新消息
  • 做公司网站需要什么手续厦门seo网站优化
  • 合肥本地网站网站关键词公司
  • 武汉电商网站建设seopc流量排行榜企业
  • 如何给给公司建立网站seo商学院
  • 让建站公司做网站需要什么最新腾讯新闻
  • 网站开发的意义搜索关键词排名优化