我有一个应用程序,它从0发送给我2个增量 - >> 32 - > 48 - > 16然后回到0,第二个增加,每次第一个点击0.第二个上升到最大值65535然后循环回到0.我猜测这是一些编码的位,可以是为了创建一个数字?
如果将这两个短片组合成一个数字,如果它们按上述行为递增,则该数字会增加1?
答案 0 :(得分:0)
0b0000_0000 0
0b0010_0000 32
0b0011_0000 48
0b0001_0000 16
所以你可以递增一个模4,0,1,2,3,0,1,2 ......的计数器并切换这两位。模4意味着& 0b11
。
int x = 0;
for (int i = 0; i < 100; ++i) {
System.out.printf("%04x%n", x);
x = (x + 1) & 0xFFFF;
x |= (x & 2) << 16;
x |= ~((x & 2) ^ (x & 1)) << 17; // Or something like that
}
我留给你找到逻辑。