存档在 ‘C/C++’ 分类

编译错误:unresolved external symbol “void __stdcall HidD_GetHidGuid

2010年4月19日

将#include ”hidsdi.h”改为
extern ”C”
{
#include ”hidsdi.h”
}
可能库hid.lib是C风格,不是C++风格的。C++风格的可以支持函数重载,所以,编译期间的C++函数名会加上类型修饰部分,看起来有很多@?这样的字符,而C风格的,不支持函数重载,编译期间的函数名与原来的函数名一样。

反码补码与绝对值

2009年11月20日

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

0的原码、补码都是0,正数的原码、补码可以特殊理解为相同,负数的补码是它的反码加1。

 

举例:

1的源码:0000 0001        -1的源码:1000 0001

1的反码:0000 0001        -1的反码:1111 1110

1的补码:0000 0001        -1的补码:1111 1111

 

注意:计算机储存有符号的整数时,是用该整数的补码进行储存的。

因而:负数的绝对值=负数的补码取反然后加一;

即:若X<0,则 |X| = ~X + 1 ,此处X 在计算机中储存时是补码。