加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 按位相等

发布时间:2020-12-15 19:34:40 所属栏目:百科 来源:网络整理
导读:我需要在两个字节之间执行按位相等.这意味着,例如,如果我有两个字节:00011011和00011110,结果是22222010 我看到的唯一快速方法是使用以下语句 byte a,b;//set input bytesbyte c = ~(a^b);//output bytes 但我想知道是否有更快的解决方案.在这些相等操作之
我需要在两个字节之间执行按位相等.这意味着,例如,如果我有两个字节:00011011和00011110,结果是22222010
我看到的唯一快速方法是使用以下语句

byte a,b;//set input bytes
byte c = ~(a^b);//output bytes

但我想知道是否有更快的解决方案.在这些相等操作之后,我想掩盖我需要的位.所以我需要使用AND操作.所以代码变成:

byte a,b;//set input bytes
byte m;//mask,intresting bits are set to 1,others to 0
byte c = (~(a^b))&m;//output bytes

是不是有任何更快,更简单的方法,不需要使用所有这些按位操作,因为这部分代码将经常被调用.

解决方法

我怀疑它可以在更少的操作中完成.这看起来最优.也许你可以将?(a ^ b)存储在查找表中(256 * 256个条目)?我怀疑你会得到很多好处甚至可能使事情变得更糟,但你可以尝试一下.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读