如何将签名的DWORD转换为无符号的DWORD?签名双字无符号双字没有二进制补码?
我有一种做法是二补的。
但是,当我这样做时,编译器给出了一个错误,即不允许对有符号数进行按位运算(按照MISRA规则2004第12条规则)。
那么我怎样才能转换为无符号双字?
long int num1,num2,
unsigned long int num3;
num1 = 293;
num2 = 296;
num3 = num1 - num2;
如果我运行代码然后NUM3装载有一些0xFFFFFFE someValue中是这样的。
但实际上所需的值3应该得到存储?
所以我做了无符号long int num3 long int num3。
然后num3有符号值(-3在这种情况下)应该转换为3而不做二进制补码?
将它转换为无符号的第一个,然后应用按位运算。 –