VB上位机如何获取一个字节的每个位是0还是1
把这个字节值
与1进行And运算,如果结果为1,则第1位为1,否则就是0;
与2(即2进制数10)进行And运算,如果结果为2,则第2位为1,否则就是0;
与4(即2进制数100)进行And运算,如果结果为4,则第3位为1,否则就是0;
与8(即2进制数1000)进行And运算,如果结果为8,则第4位为1,否则就是0;
与16(即2进制数10000)进行And运算,如果结果为16,则第5位为1,否则就是0;
与32(即2进制数100000)进行And运算,如果结果为32,则第6位为1,否则就是0;
与64(即2进制数1000000)进行And运算,如果结果为64,则第7位为1,否则就是0;
与128(即2进制数10000000)进行And运算,如果结果为128,则第8位为1,否则就是0。
简言之就是把每一位都与1进行And运算,如果该位运算结果仍是1,那么该位就肯定是1,因为只有1和1进行And运算结果才是1,而0和1或者0和0运算结果都是0。
或者也可以把这个数与2进行除法运算,如果有余数(即1),则说明第1位为1,否则就是0,然后再继续把商与2进行除法运算,有余数则第2位为1,否则为0,依此类推,直到最后数值为1或0,无法继续除2为止。
说白了,其实就是把这个数转换为二进制数的形式,然后哪个位是1哪个位是0就一目了然了。