微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当按位与&运算等于或大于按位xor ^运算时?

如何解决当按位与&运算等于或大于按位xor ^运算时?

当按位&运算大于或等于按位^操作时?

例如,4&7> = 4 ^ 7为真。

我们怎么知道什么时候是真的?

一种方法是手动执行将被隐藏的技巧?

解决方法

如果我们只谈论设置位。当最高 common 设置位也是每个数字中的最高设置位时,此条件将成立。

为什么?因为当两个数字中最高的设置位也是公共位时,该位将在与运算的结果中被设置。而且不会在XOR操作的结果中设置它。

如果最大位数中最高的置位位也未同时设置在较低数位中,则该位必然会在XOR操作中设置,而不会在AND操作中设置。

,

您可以像这样创建快速的String图像:

for i in 1...25 {
    var foo = ""
    for j in 1...25 {
        foo += i&j >= i^j ? "•" : " "
    }
    print(foo)
}
•                        
 ••                      
 ••                      
   ••••                  
   ••••                  
   ••••                  
   ••••                  
       ••••••••          
       ••••••••          
       ••••••••          
       ••••••••          
       ••••••••          
       ••••••••          
       ••••••••          
       ••••••••          
               ••••••••••
               ••••••••••
               ••••••••••
               ••••••••••
               ••••••••••
               ••••••••••
               ••••••••••
               ••••••••••
               ••••••••••
               ••••••••••

请注意正方形是如何平方增长的。

由此可见,i == j == true总是返回true。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。