我正在处理b的数据,更详细地描述了a。至少这是我理解它的方式。任何进一步指向基本按位运算的链接都值得赞赏。我正在查看的所有对象都有b为0x8000。我需要找一个来自c。
我有:
ushort a
ushort b
a是2-5
b = 0x8000
ushort c = (ushort)( a | b )
我可以,如果是,我怎样才能从c到?
我试过(a& b),但这导致我不是a。我真的被卡住了,虽然我知道如果可能的话我应该很容易理解这些操作。
答案 0 :(得分:1)
基本上,它是c AND NOT b
。
ushort a2 = (ushort) (c & ~b);
但仅仅因为 a来自2-5 并且小于0x8000
当a
和b
开始重叠时,您会被搁浅。
答案 1 :(得分:1)
这只有在小于b的情况下才有效,从你给出的间隔开始是真实的。
这两种方法都有效:
a = (ushort) (c & ~b)
a = (ushort) c - b