有人可以解释你为什么要这样做吗?为了便于参数,ErrorAssignment的类型也是sint32
问题:
转换为无符号,进行左移位,然后转换为已签名的数据类型的目的是什么?
sint32是带符号的32位整数
uint32是无符号的32位整数
ErrorAssignment = ((sint32) (( (uint32) DemandError) << 9))
编辑1:以上实际上来自最终成为真值的比较。有关更完整的说明,请参阅以下代码
sint32 valueOutCompare;
uint8 aCompareValue;
Boolean isValueTrue;
sint32 positiveLimitValue = 50;
sint32 negativeLimitValue = -50;
isValueTrue = ( (valueOutCompare > ((sint32) (((uint32)positiveLimitValue<< 9)))
|| ((valueOutCompare < ((sint32) (((sint32) negativeLimitValue) << 9)))) );