HIWORD,LOWORD ?
>> 16 , << 16 ?
不知道你具体意思。
>> 16 , << 16 ?
不知道你具体意思。
解决方案 »
- VS2008的MFC资源中Dialog中怎么加编辑框之类的啊??快疯了。。。
- 谁给我发个VC写的模拟网页表单提交程序
- mfc中我想告诉使用zhe程序正在干什么,应该怎么做?
- 明天冬至了,散分
- 我们有一个项目,可能会用到网络编程和视频编程,求各位推荐一本书!
- 怎么把计算结果保存到excel文件里???
- [求助]如何排序中文字符串,按拼音!
- CTreeView内含的CTreeCtrl,怎么修改其item?
- 自己创建了一个视,如何把它和现有文档类关联
- 如何判断一个字符串是不是合法的路径名?
- CInternetSession使用问题 //这句代码怎么回事?
- MFC 怎样获取Resolution里面的所有分辨率
从二进制角度看, 不存在符号概念. 符号取决于你是否用有符号还是无符号接住.
typedef unsigned long DWORD;
因为DWORD是无符号的, 你最好直接用long来接.
short a;
short b;
long c = a << 16 | b
*(long *)0x0A0000000=(((a[i]<<16)| (b[i]));
这一句编译没有问题,可是调试会有这个问题
*(long *)0x0A0000000=(((a[i]<<16)| (b[i]));
这一句编译没有问题,可是调试会有这个问题直接操作内存啊? 0x0A0000000你直接操作了!? 你用VMMap看一下这个地址内存是不是可以操作. 没有分配就直接操作内存, Access Deny很正常啊.
dwData = (a[i] << 16) & 0xFFFF0000;
dwData = dwData & (b[i] & 0xFFFF);
int a;
short* b = (short*)&a;
b[0] = 0xab;
b[1] = 0xcd;这样行不行.
把32位的int当2个16位的数组来处理.
把0xcd放入低16位,把0xab放入高16位.
不知道你是不是这个意思.
把32位的int当2个16位的数组来处理.
把0xcd放入低16位,把0xab放入高16位.
不知道你是不是这个意思.
是这个意思,需要存的两个数都要包括符号位
不好意思没有看懂,能不能说详细点。谢谢
把32位的int当2个16位的数组来处理.
把0xcd放入低16位,把0xab放入高16位.
不知道你是不是这个意思.
是这个意思,需要存的两个数都要包括符号位
地址何需符号位~~Windef.h 里本来 就有取高低字的宏定义。#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
想把处理好的两个16位的数拼接成32位,然后用这种方式*0x0A0000000=b;将拼接好的值放到一个地址中,可以么
#define LOWORD(l) ((WORD)(l))
#define HIWORD(l) ((WORD)((DWORD)(l) >> 16))