假设这0bXXXXXXXY意味着二进制,其中 Y 是较低有效位。
假设结果是按位运算设置的:
您的数字由两个字节组成。右边(不那么重要)字节总是 0b00000000,因为所有数字都以 00 结尾。让我们看看左边(更重要)字节:
当bCold和bHot都打开时 = 0x4100=0b01000001
当bCold和bHot都关闭时 = 0x8200=0b10000010
如果bCold为 ON 而bHOT为 OFF = 0x8100=0b10000001
如果bCold为 OFF 而bHOT为 ON = 0x4200=0b01000010
从这里你可以看到最左边的两个位设置bHot,最右边的两个位设置bCold(右 = 不太重要)。
So:
0b01000000 = *bHot* ON -= `0x40`
0b00000001 = *bCold* ON = `0x01`
0b10000000 = *bHot* OFF = `0x80`
0b00000010 = *bCold* OFF = `0x02`
现在,添加正确的字节,我们说它总是为零,你得到
*bHot* ON = 0x4000, OFF = 0x8000
*bCold* ON = 0x0100, OFF = 0x0200
结果由按位“或”设置
假设结果是通过简单地添加数字来设置的:
(这是错误的,因为您的帖子名称包含按位或提及,但还是让我们尝试一下只是为了好玩)一个简单的等式将向我们展示这些数字:
*bCold* OFF: 0x0200, ON: 0x0100
*bHot* OFF: 0x8000, ON: 0x4000
结果可以通过简单地添加数字来设置,例如0x0200 + 0x8000 = 0x8200两个都为OFF。
结论
如您所见,所以最终结果是:
*bCold* OFF: 0x0200, ON: 0x0100
*bHot* OFF: 0x8000, ON: 0x4000