2位数的按位运算总能产生独特的结果?

时间:2016-04-25 23:31:29

标签: bit-manipulation bitwise-operators

我可以依赖于按位运算的任何排列来始终产生唯一的结果吗?按位操作一直是我的弱点。

我的目标是<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 2个数字始终产生唯一值。其中一个数字将始终保持不变(等于OR)。即,

0x0111

上面的例子没有产生独特的结果,都产生int uniqueDelegateId1 = WM_COMMAND | btn1.id; // resolves to 0x0111 | 50008 int uniqueDelegateId2 = WM_COMMAND | btn2.id; // resolves to 0x0111 | 50009 。我可以使用不同的按位运算符来确保始终获得唯一的结果吗?如xor,等等?

1 个答案:

答案 0 :(得分:0)

我不清楚为什么你不能只使用id值。

如果您需要区分多个消息/ ID组合,您可以将其中一个值移出另一个值,然后将它们组合在一起,沿着

行。

WM_COMMAND | (btn1.id << MAX_COMMAND_BIT_WIDTH)