送分100分:1、负数的补码为什么是反码+1 2、如何理解INVALID_HANDLE_VALUE(-1) 问题如下:1、负数的补码为什么是反码+1 ,干嘛非要加这个1?2、如何理解INVALID_HANDLE_VALUE(-1) ,这个 如何理解INVALID_HANDLE_VALUE() 是一个函数、而-1是它的参数吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、负数的补码为什么是反码+1 ,干嘛非要加这个1?====================以前读书时老师教过,但是好像只教了取反加1,好像没教为什么,或者教了,但我忘了。2、如何理解INVALID_HANDLE_VALUE(-1) ,这个 如何理解INVALID_HANDLE_VALUE() 是一个函数、而-1是它的参数吗===============这个问题问得我都晕了,INVALID_HANDLE_VALUE是一个常量,后面(-1)是表示这个常量的值是-1而已。 1. 参考 http://blog.pcware.cn/it/misc/tows_complement_proof.html2. INVALID_HANDLE_VALUE不是函数,是类型转换。 1、一个数加上它的反码的结果是所有位都为1,再加上1后变成0(最高位溢出),这样定义补码才能满足一个数与其相反数相加结果为0。2、你的写法是错的,或者说没有写完整。INVALID_HANDLE_VALUE是一个宏,其定义为:#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)在代码中使用INVALID_HANDLE_VALUE等同于((HANDLE)(LONG_PTR)-1)。 1.当数值的范围达到一定界限后会产生溢出,补码是一种编码方式,在解决码子溢出方面,负数补码加1和正数加0刚好匹配,不用在意它具体为什么,刚好匹配满足一种类似的数据结构(这样理解可能有点笨拙,不过就是这样的)。2.#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)只是个宏而已。 #define INVALID_HANDLE_VALUE (HANDLE)-1 在MFC中如何利用调色板来对bmp位图进行灰度处理 VC7里如何删除一 当窗口大小改变时的问题 散分 随便问个问题 blog出错了? 征集算法 程序运行时会出现"abnormal Program Termination"的运行时错误,请问什么原因?怎样找到出错的地方?如何解决? 还是关于控件的问题 局域网数据群发的问题 我监听一个端口,为什么当两个程序连接这个端口时会报错 如何用MFC打开word 在MFC程序中怎么求数的平方根
====================
以前读书时老师教过,但是好像只教了取反加1,好像没教为什么,或者教了,但我忘了。2、如何理解INVALID_HANDLE_VALUE(-1) ,这个 如何理解INVALID_HANDLE_VALUE() 是一个函数、而-1是它的参数吗
===============
这个问题问得我都晕了,INVALID_HANDLE_VALUE是一个常量,后面(-1)是表示这个常量的值是-1而已。
2、你的写法是错的,或者说没有写完整。INVALID_HANDLE_VALUE是一个宏,其定义为:
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
在代码中使用INVALID_HANDLE_VALUE等同于((HANDLE)(LONG_PTR)-1)。
2.#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
只是个宏而已。