位运算,效率高
1、先理解原码、反码、补码
正数的原码、反码、补码都一样。
举例 10为例。
关键是负数。
原码:
反码:最高位不变,其余的取反得到:1111 1111 1111 1111 1111 1111 1111 0101
补码:等于反码加1。 1111 1111 1111 1111 1111 1111 1111 0110
2、位运算
位运算符:操作数是整数,但是操作负整数时,用的是补码!!!!!
左移 << : 右边补0
右移 >>: 左边补0或1,如果原数最高位是1就补1,是0就补0.
无符号右移 >>> : 左边补0
按位与 & :二进制对应位置取与 ,同时为1才为1,否则为0
按位或 | :二进制对应位置取或 ,有一个为1就为1
按位异或运算 ^ :二进制对应位置取异或 ,两者不同才为1
按位取反 ~ :二进制对应位置取反 ,原来是1,变为0,原来是0变为1
说明:位运算符都是机器数直接运算的
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
· 在外漂泊的这几年总结和感悟,展望未来
· 博客园 & 1Panel 联合终身会员上线
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· https证书一键自动续期,帮你解放90天限制
· 在 ASP.NET Core WebAPI如何实现版本控制?