将不确定变为确定~一切归总为“二”(C#中的位运算有啥用)
本文中的“二”,指的是二进制,即看见2就进一,也叫逢二进一,它是最为简单和清晰的数据,在现实生活中,人们用的最多的就是十进制数据,即逢十进一,看一下例子:
二进制: 十进制
0 0
01 01
10 02
11 03
100 04
看到了吧,在二进制中,不会出现比1大的数,除了0就是1,而在十进制中,不会出现10,它由0~9这10个数字组成。
在我们的C#中,位运算分为左位移和右位移,分别用<<和>>表示,左移相当于向左移位,右面补0,例如:
10 << 1 它的含义是10 0,它最后的结果就是100,相当于10进制的4,这时我们难看出左移1位,相当于乘2操作,返之还有右移,例如:
100 >> 1 它的结果就是010,它在左面进行补0,右移后相当于除2操作
通过这个特性,我们在设计具有位去处的Flags特性枚举时,可以这样来做了
我们将它的值输出看一下吧
结果如下:
总结:事实上,在无论是十进制还是十六进制或八制的位运算,计算器都会它将转换成二进制,然后再进行位移的计算。
分类:
其它 / ASP.NET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示