char num[10];
char temp[10];
temp = num[0] << 4 | num[1];
和
temp = num[1] | num[0] << 4; 这个运算是正确的
看似结构相同,但是结果是不同,第一种方式:由于是对于相同数组的移位,先移位后 或,导致数值产生异常。
第二种方法,则正常,
这种很坑人!!!
左移就是丢弃最高位,0补最低位
char num[10];
char temp[10];
temp = num[0] << 4 | num[1];
和
temp = num[1] | num[0] << 4; 这个运算是正确的
看似结构相同,但是结果是不同,第一种方式:由于是对于相同数组的移位,先移位后 或,导致数值产生异常。
第二种方法,则正常,
这种很坑人!!!
左移就是丢弃最高位,0补最低位