#define BitSet1(TYPE,dwX, nbit) (dwX =dwX | (TYPE)(0x00000000+pow(2, nbit)))
#define BitSet0(TYPE,dwX, nbit) (dwX =dwX & (TYPE)(0xFFFFFFFF-pow(2, nbit)))
#define BitTest(TYPE,dwX, nbit) (( (dwX >>nbit) & 0x01) > 0)
这是我之前编写的, 只适用于最高32位的类型(DWORD)现在32位标志不能满足我的需求了, 我想用BYTE 或者 char 来做类型, 支持任意长度的, 对这3个宏应该怎样改变一下呢?谢谢!
#define BitSet0(TYPE,dwX, nbit) (dwX =dwX & (TYPE)(0xFFFFFFFF-pow(2, nbit)))
#define BitTest(TYPE,dwX, nbit) (( (dwX >>nbit) & 0x01) > 0)
这是我之前编写的, 只适用于最高32位的类型(DWORD)现在32位标志不能满足我的需求了, 我想用BYTE 或者 char 来做类型, 支持任意长度的, 对这3个宏应该怎样改变一下呢?谢谢!
解决方案 »
- 程序出现 unhandled exception in文件名。exe(KERNEL32.DLL) 0XE06D7363 : Microsoft c++ exce
- 怎么在线程中创建CDialog
- MFC中“设置字体”按钮
- 发布ActiveX控件后的资源文件问题
- 哪位大侠研究过EXCEL的客户区窗口的实现过程?咱们交流一下!有些问题要请教!
- 想请问如果何实现获得某个指定网页(IE窗口)里的编辑框的句柄!
- 如何在以画的图象上写字
- 如何将源文件和头文件编译成为一个lib文件
- <<vc技术内幕>>买哪个出版社的好啊,希望的还是清华的啊,?
- 请问如何改变“静态文本框”中的文字颜色?
- 谁有windows系统编程源代码
- directshow 的显示问题
#define BitSet0(TYPE, dwX, nbit) (dwX[nbit/8+1] =dwX[nbit/8+1] & (TYPE)(0xFF-pow(2, nbit%8)))
#define BitTest(TYPE,dwX, nbit) (( (dwX[nbit/8+1] >>nbit%8) & 0x01) > 0)
#define BitSet1(TYPE,dwX, nbit) (dwX[nbit/8+1]==(dwX[nbit/8+1] = dwX[nbit/8+1] | (BYTE)(0x00+pow(2, nbit%8)))?(TYPE)dwX:(TYPE)dwX)
#define BitSet0(TYPE,dwX, nbit) (dwX[nbit/8+1]==(dwX[nbit/8+1] =dwX[nbit/8+1] & (BYTE)(0xFF-pow(2, nbit%8)))?(TYPE)dwX:(TYPE)dwX)
#define BitTest(dwX, nbit) (( (dwX[nbit/8+1] >>nbit%8) & 0x01) > 0)
#define BitSet1(TYPE,dwX, nbit) (dwX[nbit/8]==(dwX[nbit/8] = dwX[nbit/8] | (BYTE)(0x00+pow(2, nbit%8)))?(TYPE)dwX:(TYPE)dwX)
#define BitSet0(TYPE,dwX, nbit) (dwX[nbit/8]==(dwX[nbit/8] =dwX[nbit/8] & (BYTE)(0xFF-pow(2, nbit%8)))?(TYPE)dwX:(TYPE)dwX)
#define BitTest(dwX, nbit) (( (dwX[nbit/8] >>nbit%8) & 0x01) > 0)
// bVal: flag[8] nPos:第n位 fZero:置1还是置0