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

买公司的网站建设西安计算机培训机构排名前十

买公司的网站建设,西安计算机培训机构排名前十,学网站开发技术,抚州seo排名假设我们有一个 long 类型的变量 l&#xff0c;我们希望恢复其绝对值。以下是两种方法的对比&#xff1a; 方法1&#xff1a;使用条件语句 这个很好理解&#xff0c;负数时取负运算 &#xff0c;用于数值的符号反转。 long abs_value(long l) {if (l < 0) {return -l;} e…

假设我们有一个 long 类型的变量 l,我们希望恢复其绝对值。以下是两种方法的对比:

方法1:使用条件语句

这个很好理解,负数时取负运算 ,用于数值的符号反转。

long abs_value(long l) {if (l < 0) {return -l;} else {return l;}
}
方法2:使用位操作
long abs_value(long l) {long s = l >> 63;  // 获取符号位l = (l + s) ^ s;   // 恢复绝对值return l;
}

      l为正数时,s=0;  (l+s)^s = l^0=l;对于任何整数与 0 进行按位异或操作的结果总是 其本身。

      l为负数时,s=-1,即0xffff ffff ffff ffff;
      这是因为long l的最高位为符号位,负数的最高位为1;右移操作会将变量的二进制表示向右移动指定的位数,空出的位数会用符号位的值来填充,l>>63,左侧空位全补1就得到0xffff ffff ffff ffff,该值对应-1。

在计算机中,负数以补码的形式表示。对于一个负数 x,其补码表示为:

  1. 取反(按位取反)。

  2. 加1。

   s=-1时, (l+s)^s = (l-1)^0xffff ffff ffff ffff  正好是负数取补码的逆过程,所以相当于获取了负数的绝对值。

方法2的优势:

1. 避免条件分支

使用条件语句(如 if 语句)会导致代码中出现分支。在现代处理器中,分支预测失败可能会导致性能下降。通过使用位操作,可以避免条件分支,从而提高代码的执行效率。

2. 提高性能

位操作通常比条件分支更快,因为它们直接在寄存器级别进行操作,而不需要进行复杂的控制流判断。这在性能敏感的应用中尤其重要。

3. 减少代码复杂性

虽然位操作可能看起来有些复杂,但它们实际上可以减少代码的复杂性,特别是在处理整数操作时。位操作通常更简洁,且不需要额外的变量或复杂的逻辑。

但是实际测试时,还是方法1的性能更高一些:

xxx@:~/test/c-func$ ./a.out
Time taken by abs_value_if: 4.517215 seconds
Time taken by abs_value_bit: 4.865139 seconds


 

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

相关文章:

  • 专门做图片的网站吗如何建网站要什么条件
  • 卢氏县住房和城乡建设局网站站长统计 站长统计
  • 济南 网站制作旺道营销软件
  • 新上线网站如何做搜索引擎站长素材网站
  • 做网站编辑深圳疫情防控最新消息
  • PHP网站开发项目式教程google下载手机版
  • 国外专门用于做网站图片的做网站要多少钱
  • 网站维护费用计入什么科目媒介星软文平台官网
  • 网站建设seo 视频做网站哪个平台好
  • 旅行社网站建设方案论文百度seo公司
  • 长沙网站建设与维护百度开户联系方式
  • 做pcr查基因序列的网站南京百度网站快速优化
  • 数据服务网站策划方案关键词快速优化排名软件
  • 响应式网站缺点学大教育培训机构电话
  • 江苏天德建设工程有限公司网站一个平台怎么推广
  • 石家庄做网络推广的网站推广平台收费标准
  • 贵阳天柱网站建设招聘域名注册平台有哪些
  • 网站建设电话营销百度问一问官网
  • 网站优化建设河南怎么关闭seo综合查询
  • 自贡做响应式网站开发公司google搜索引擎入口google
  • 东莞哪种网站推广好微信朋友圈推广文案
  • 现在学做网站赚钱吗东莞市优速网络科技有限公司
  • 宁津做网站公司宣传推广图片
  • 陕西的建设厅官方网站数据分析报告
  • 企业网站建设的定位互联网
  • 注册域名之后如何做网站优化清理大师
  • wordpress+在线播放推广seo网站
  • 丽水网站建设明恩玉杰网站开发框架
  • 如何设计网站中的上传功能搜索引擎技术基础
  • 余江区建设局网站百度搜索引擎优化的方法