我正在与一个微控制器一起工作,在该微控制器中,我要连接的传感器发送uint8_t数据。问题是我可以使用uint32_t函数读取该引脚。
所以我想我可以用uint32_t读取图钉,但是我必须“提取”它。但我胡说八道...
uint32_t number = 429496729;
uint8_t x1 = (number >> (8*0)) & 0xff;
uint8_t x2 = (number >> (8*1)) & 0xff;
uint8_t x3 = (number >> (8*2)) & 0xff;
uint8_t x4 = (number >> (8*3)) & 0xff;
例如打印x3给我“™”。与x1相同。这是怎么回事?
答案 0 :(得分:1)
根据您的代码,“™”正是您所期望的。
// 0x19999999 - NOTE: you'd need an extra '5' on the end to make it MAX_UNIT. eg. 0xFFFFFFFF
uint32_t number = 429496729;
uint8_t x1 = (number >> (8*0)) & 0xff; // 0x99
uint8_t x2 = (number >> (8*1)) & 0xff; // 0x99
uint8_t x3 = (number >> (8*2)) & 0xff; // 0x99
uint8_t x4 = (number >> (8*3)) & 0xff; // 0x19
如果您在扩展的ascii中查找"™"符号,则它映射到153,例如。 0x99h。