如何将带符号的 DWORD 转换为无符号的 DWORD ?
我有一种方法是二进制补码。
但是,当我这样做时,编译器给出了一个错误,即有符号数不允许按位运算(根据 MISRA 规则 2004 第 12 条规则)。
那么我怎样才能转换为无符号 Dword?
long int num1,num2,
unsigned long int num3;
num1 = 293;
num2 = 296;
num3 = num1 - num2;
如果我运行代码,那么 num3 会加载一些像这样的 0xFFFFFFE somevalue。
但实际上想要的值 3 应该得到存储?
所以我将 unsigned long int num3 设为 long int num3。
那么num3有符号值(在这种情况下为-3)应该转换为3而不进行二进制补码?