文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#中有哪些移位运算符

2023-06-18 00:17

关注

今天就跟大家聊聊有关C#中有哪些移位运算符,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

C#移位运算符中的<< 和 >> 运算符用于执行移位运算。

shift-expression:(移位表达式:)

additive-expression(加法表达式)

shift-expression   <<   additive-expression(移位表达式   <<   加法表达式)

shift-expression   >>   additive-expression(移位表达式   >>   加法表达式)

对于 x << count 或 >> count 形式的运算,应用二元运算符重载决策以选择特定的运算符实现。操作数转换为所选运算符的参数类型,结果的类型是该运算符的返回类型。

当声明重载C#移位运算符时,***个操作数的类型必须总是包含运算符声明的类或结构,并且第二个操作数的类型必须总是 int。

下面列出了预定义的移位运算符。

C#移位运算符之左移位:

int operator <<(int x, int count);  uint operator <<(uint x, int count);  long operator <<(long x, int count);  ulong operator <<(ulong x, int count);

<< 运算符将 x 向左位移若干个位,具体计算方法如下所述。

放弃 x 中经移位后会超出结果类型范围的那些高序位,将其余的位向左位移,将空出来的低序位均设置为零。

C#移位运算符之右移位:

int operator >>(int x, int count);  uint operator >>(uint x, int count);  long operator >>(long x, int count);  ulong operator >>(ulong x, int count);

>> 运算符将 x 向右位移若干个位,具体计算方法如下所述。

当 x 为 int 或 long 类型时,放弃 x 的低序位,将剩余的位向右位移,如果 x 非负,则将高序空位位置设置为零,如果 x 为负,则将其设置为 1。

当 x 为 uint 或 ulong 类型时,放弃 x 的低序位,将剩余的位向右位移,并将高序空位位置设置为零。

C#移位运算符的使用:

对于预定义运算符,位移的位数按下面这样计算:

当 x 的类型为 int 或 uint 时,位移计数由 count 的低序的 5 位给出。换言之,位移计数由 count & 0x1F 计算出。

当 x 的类型为 long 或 ulong 时,位移计数由 count 的低序的 6 位给出。换言之,位移计数由 count & 0x3F 计算出。

如果计算位移计数的结果为零,则移位运算符只返回 x 的值。

移位运算从不会导致溢出,并且在 checked 和 unchecked 上下文中产生的结果相同。

当 >> 运算符的左操作数为有符号的整型时,该运算符执行算术右移位,在此过程中,操作数的最有效位(符号位)的值扩展到高序空位位置。当 >> 运算符的左操作数为无符号的整型时,该运算符执行逻辑右移位,在此过程中,高序空位位置总是设置为零。若要执行与由操作数类型确定的不同的移位运算,可以使用显式强制转换。例如,如果 x 是 int 类型的变量,则 unchecked((int)((uint)x >> y)) 运算执行 x 的逻辑右移位。

看完上述内容,你们对C#中有哪些移位运算符有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯