指定将二进制的某一位(Bit)改为1
指定更新某一位为1,其他位不变:
举例:二进制 1010,更新第3位为1:将值和 0100
进行按位或操作。
原值 | 操作 | 结果(二进制) | 结果(十进制) | |
---|---|---|---|---|
更新第1位为1 | 1010 | | 0001 | 1011 | 11 |
更新第2位为1 | 1010 | | 0010 | 1010 | 10 |
更新第3位为1 | 1010 | | 0100 | 1110 | 14 |
更新第4位为1 | 1010 | | 1000 | 1010 | 10 |
由于 App Inventor 没有移位操作,只能用一个列表存 0001 0010 0100….然后拿出来按位操作,这样代码量相比多分支判断会少很多,逻辑也更清晰。
指定将二进制的某一位(Bit)改为0
指定更新某一位为0,其他位不变:
举例:二进制 1010,更新第3位为0:将值和 1011
进行按位与操作。
原值 | 操作 | 结果(二进制) | 结果(十进制) | |
---|---|---|---|---|
更新第1位为0 | 1010 | & 1110 | 1010 | 10 |
更新第2位为0 | 1010 | & 1101 | 1000 | 8 |
更新第3位为0 | 1010 | & 1011 | 1010 | 10 |
更新第4位为0 | 1010 | & 0111 | 0010 | 2 |