我定义了以下uint:
uint32_t a = ~(b - 1) & 0xf; // b is another uint32_t
是否可以:
uint32_t a_bis = b & 0xf;
?
假设我没有b而是拥有a,我想拥有a_bis,但是我不确定要从a中获得a_bis可以做些什么数学运算。
谢谢您的帮助!
答案 0 :(得分:1)
解决方案是a_bis = (~a+1)&0xf;
答案 1 :(得分:0)
如果您忘记了&0xf,这很容易理解。
您所拥有的:
a = ~(b-1)
a_bis = b
您想要什么:
~a = (b - 1)
~a + 1 = b = a_bis
so a_bis = ~a + 1
您现在只能采用该解决方案的最低4位,就可以得到结果。
a = ~(b - 1) & 0xf
a_bis = b & 0xf
编辑:没有看到geza评论。