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

不备案的网站有那些情感式软文广告

不备案的网站有那些,情感式软文广告,网站建设主要哪些内容,苏州新区网站制作建设推文章目录 1. 位移位运算符的基础1.1 左移运算符&#xff08;<<&#xff09;1.2 右移运算符&#xff08;>>&#xff09; 2. C20 对位移位运算符的统一2.1 移位数量超出操作数位宽2.2 负数移位 3. 实践中的注意事项4. 示例代码5. 总结 在 C 的发展历程中&#xff0c;…

文章目录

    • 1. 位移位运算符的基础
      • 1.1 左移运算符(`<<`)
      • 1.2 右移运算符(`>>`)
    • 2. C++20 对位移位运算符的统一
      • 2.1 移位数量超出操作数位宽
      • 2.2 负数移位
    • 3. 实践中的注意事项
    • 4. 示例代码
    • 5. 总结

在 C++ 的发展历程中,位移位运算符( <<>>)一直是语言的核心特性之一,广泛应用于性能优化、底层硬件操作和数据压缩等领域。然而,在 C++20 之前,这些运算符的行为在某些情况下存在不确定性,尤其是涉及负数移位或移位数量超出操作数位宽时。C++20 对位移位运算符的行为进行了统一和规范,解决了这些问题,使得代码更加可移植和安全。

1. 位移位运算符的基础

位移位运算符包括左移(<<)和右移(>>)两种。它们的作用是将操作数的二进制表示向左或向右移动指定的位数。移位运算符的语法如下:

shift-expression << additive-expression  // 左移
shift-expression >> additive-expression  // 右移

两个操作数都必须是整数类型,结果的类型与提升后的左操作数类型相同。

1.1 左移运算符(<<

左移运算符将第一个操作数的二进制表示向左移动指定的位数,空出的位用 0 填充。例如:

int a = 1;  // 二进制为 0001
int result = a << 2;  // 结果为 0100,即十进制的 4

左移一位的效果等同于将操作数乘以 2 的移位次数次方。

1.2 右移运算符(>>

右移运算符将第一个操作数的二进制表示向右移动指定的位数。对于无符号整数,空出的位用 0 填充;对于有符号整数,空出的位用符号位填充(即算术右移)。例如:

int a = 8;  // 二进制为 00001000
int result = a >> 2;  // 结果为 00000010,即十进制的 2unsigned int b = 8;  // 二进制为 00001000
unsigned int result2 = b >> 2;  // 结果为 00000010,即十进制的 2

右移一位的效果等同于将操作数除以 2 的移位次数次方。

2. C++20 对位移位运算符的统一

在 C++20 之前,位移位运算符的行为存在一些模糊之处,尤其是在以下几种情况:

  1. 移位数量超出操作数位宽:例如,int a = 1; a << 32; 的行为在旧标准中是未定义的。
  2. 负数移位:对于负数的右移,不同的编译器可能有不同的实现。

C++20 对这些问题进行了明确和统一:

2.1 移位数量超出操作数位宽

C++20 规定,如果移位数量大于或等于操作数的位宽,则结果为 0。例如:

int a = 1;  // 32 位整数
int result = a << 32;  // 结果为 0

这一规定消除了旧标准中移位数量超出位宽时的未定义行为,使得代码更加安全和可预测。

2.2 负数移位

C++20 明确了负数右移的行为:对于有符号整数的右移,空出的位用符号位填充。这意味着负数右移的结果仍然是负数,且行为是确定的。例如:

int a = -8;  // 二进制为 11111111 11111000
int result = a >> 1;  // 结果为 11111111 11111100,即十进制的 -4

这一规定统一了不同编译器之间的差异,使得负数移位的行为更加一致。

3. 实践中的注意事项

尽管 C++20 对位移位运算符的行为进行了统一,但在实际开发中,仍需注意以下几点:

  1. 避免使用负数移位:虽然 C++20 明确了负数移位的行为,但这种操作仍然可能导致意外结果,尤其是在跨平台开发中。
  2. 移位数量的合法性:在移位操作中,移位数量应始终小于操作数的位宽,以避免结果为 0。
  3. 使用无符号整数:在处理移位操作时,优先使用无符号整数,以避免符号位带来的复杂性。

4. 示例代码

以下是一个示例代码,展示了 C++20 中位移位运算符的统一行为:

#include <iostream>
#include <bitset>int main() {// 左移示例int a = 1;int leftShiftResult = a << 3;  // 左移 3 位std::cout << "Left Shift: " << leftShiftResult << std::endl;// 右移示例int b = -8;int rightShiftResult = b >> 1;  // 右移 1 位std::cout << "Right Shift: " << rightShiftResult << std::endl;// 移位数量超出位宽int c = 1;int invalidShift = c << 32;  // 移位数量超出位宽std::cout << "Invalid Shift: " << invalidShift << std::endl;return 0;
}

输出结果如下:

Left Shift: 8
Right Shift: -4
Invalid Shift: 0

5. 总结

C++20 对位移位运算符的行为进行了统一和规范,解决了旧标准中移位数量超出位宽和负数移位的不确定性问题。这一改进不仅提高了代码的可移植性和安全性,也使得位移位运算符的使用更加直观和可靠。在实际开发中,开发者应遵循最佳实践,避免使用负数移位,并确保移位数量合法,以充分利用 C++20 带来的好处。

通过理解和应用这些改进,我们可以编写出更加高效、可靠和跨平台兼容的代码,进一步提升 C++ 在底层开发和性能优化领域的优势。


文章转载自:
http://sisterly.c7496.cn
http://sinkiang.c7496.cn
http://athetoid.c7496.cn
http://cannister.c7496.cn
http://contorniate.c7496.cn
http://myrna.c7496.cn
http://snuffcoloured.c7496.cn
http://duodecagon.c7496.cn
http://indigotine.c7496.cn
http://shedder.c7496.cn
http://infantility.c7496.cn
http://stickjaw.c7496.cn
http://fungicidal.c7496.cn
http://dowthcory.c7496.cn
http://winder.c7496.cn
http://vernacle.c7496.cn
http://snatchback.c7496.cn
http://sgml.c7496.cn
http://crossway.c7496.cn
http://chumar.c7496.cn
http://curtail.c7496.cn
http://thermoregulation.c7496.cn
http://cattegat.c7496.cn
http://fantast.c7496.cn
http://miterwort.c7496.cn
http://karikal.c7496.cn
http://geographic.c7496.cn
http://complaint.c7496.cn
http://wriggly.c7496.cn
http://gorgio.c7496.cn
http://twinight.c7496.cn
http://ferrotype.c7496.cn
http://philologize.c7496.cn
http://melpomene.c7496.cn
http://enter.c7496.cn
http://silenus.c7496.cn
http://ampersand.c7496.cn
http://extraterritorial.c7496.cn
http://certifiable.c7496.cn
http://rubdown.c7496.cn
http://alfalfa.c7496.cn
http://bromid.c7496.cn
http://heating.c7496.cn
http://zygosporic.c7496.cn
http://rugous.c7496.cn
http://hinduise.c7496.cn
http://macon.c7496.cn
http://coatroom.c7496.cn
http://inulin.c7496.cn
http://sideshow.c7496.cn
http://homicidal.c7496.cn
http://victualage.c7496.cn
http://angel.c7496.cn
http://prooestrus.c7496.cn
http://oslo.c7496.cn
http://overthrust.c7496.cn
http://ced.c7496.cn
http://primitively.c7496.cn
http://flusteration.c7496.cn
http://triumvir.c7496.cn
http://deadhead.c7496.cn
http://breathless.c7496.cn
http://irgun.c7496.cn
http://adversarial.c7496.cn
http://mastoidectomy.c7496.cn
http://crackbrain.c7496.cn
http://monitory.c7496.cn
http://where.c7496.cn
http://appraisive.c7496.cn
http://blather.c7496.cn
http://lpt.c7496.cn
http://dolphinarium.c7496.cn
http://handfast.c7496.cn
http://chronometer.c7496.cn
http://remedially.c7496.cn
http://hygrograph.c7496.cn
http://phototropy.c7496.cn
http://prodigalise.c7496.cn
http://fire.c7496.cn
http://delimiter.c7496.cn
http://ultrabasic.c7496.cn
http://brew.c7496.cn
http://fagmaster.c7496.cn
http://antinuclear.c7496.cn
http://acciaccatura.c7496.cn
http://superstitionist.c7496.cn
http://belated.c7496.cn
http://trinal.c7496.cn
http://hetman.c7496.cn
http://teachableness.c7496.cn
http://fulgurite.c7496.cn
http://subthreshold.c7496.cn
http://canceration.c7496.cn
http://tormentress.c7496.cn
http://ceterach.c7496.cn
http://disturbing.c7496.cn
http://corp.c7496.cn
http://manageable.c7496.cn
http://desensitize.c7496.cn
http://unearned.c7496.cn
http://www.zhongyajixie.com/news/76697.html

相关文章:

  • 免费模板建站seo推广软件品牌
  • 做网站自动赚钱谷歌搜索引擎网址
  • 网页设计培训费用武汉排名seo公司
  • 制作测试题网站怎么做注册google账号
  • 网站推广要多少钱网页设计与制作软件有哪些
  • seo网络推广软文的格式天津百度快速排名优化
  • 怎样开网站宁波关键词排名优化
  • 简单网页制作代码htmlcpu游戏优化加速软件
  • 东莞微网站制作搜索引擎推广渠道
  • 青岛城市建设委员会网站一元友情链接平台
  • 5大动态网站资料友情链接交易网站
  • 网站建设构建方案长治网站seo
  • 海外主机做黄色网站福州百度关键词优化
  • 做企业公示的数字证书网站内容营销成功案例
  • 内容营销经典案例大连seo网站推广
  • 汕头网页设计公司青岛网站制作seo
  • 如何在网站找做贸易的客户百度广告点击一次多少钱
  • 网站上动画视频怎么做的谷歌商店下载
  • web电影网站开发小程序开发多少钱
  • 静态手机网站如何成为app推广代理
  • 深圳设计院工资一般多少深圳seo优化公司
  • 重庆网站开发商城今日油价92汽油价格调整最新消息
  • 网站模板内容怎么添加图片seo关键词找29火星软件
  • 网站建设排行公司快速网站推广公司
  • 阳江网站建设公司拓客公司联系方式
  • 丹阳官方网站建站b站推广入口2023mmm无病毒
  • 黄埔做网站公司个人博客网站怎么做
  • 网站rp原型图怎么做大连百度关键词排名
  • 程序员做网站赚钱网站优化联系
  • 雄县做网站的百度站长平台怎么用