二进制位移操作及按位取值方法
((Value shr (nIndex-1)) and 1)=1; 这个写法可以获取到字节的指定bit状态。是1还是0, ((VALUE >> (nIndex-1)) & 1)==1 C语言中应该是这样写的吧
Test1:
28,取第三位状态=1
((28 shr (3-1)) and 1)=1
28 二进制表示:00011100
右移2位为7 二进制表示:0111 and 1
1 二进制表示:0001
0111 按位与 0001
0001
1=1 所以为真
Test2:
28取第6位=0
数学计算公式:
((28 shr (6-1)) and 1)=1
28 二进制表示:00011100
右移5位=0
0000 0001 返回FALSE=0
Test3:
175 取第五位状态=0
175 = 10101111
((175 shr (5-1)) and 1)=1
175右移四位=1010
1010 0001 全部不匹配所以=0
Test4:
175取第8位=1
((175 shr (8-1)) and 1)=1
175右移7位=0001
0001 0001 =1 为真
Test5:
175取第1位=1
((175 shr (1-1)) and 1)=1
175右移0位= 10101111
10101111 00000001 =1 为真
Test6:
8 取第4位=1
8=1000
((8 shr (4-1)) and 1)=1
8右移三位:0001
0001 0001 =1
Test7:
8 取第3位=0
8=1000
((8 shr (3-1)) and 1)=1
8右移二位:0010
相与全为0 0010 0001 =0
Test8:
1取第一位=1
1=0001
((1 shr (1-1)) and 1)=1
0001=0001=1
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751654.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义