uint8_t port = 0x5aU ; uint8_t result_8 ; result_8 = (~port) > > 4 ; |
首先搞清楚 uint_8t是啥,typedef unsigned char uint8_t;由于机器用的是32位的机器,因此port取反后的值是fffffa5.移位后得不到自己想要的结果。而我们需要在取反后取后8位,因此可以取反后强转后移位。:((uint8_t)(~port))>>4;
uint8_t port = 0x5aU ; uint8_t result_8 ; result_8 = (~port) > > 4 ; |
首先搞清楚 uint_8t是啥,typedef unsigned char uint8_t;由于机器用的是32位的机器,因此port取反后的值是fffffa5.移位后得不到自己想要的结果。而我们需要在取反后取后8位,因此可以取反后强转后移位。:((uint8_t)(~port))>>4;