VC中的变量类型不是一般的多,什么BYTE, WORD, DWORD, LPARAM, WPARAM, USHORT, UCHAR...像我这样VC还处于入门级别的人很容易混淆(实事求是地讲我从来没搞明白过*^_^*)。越是这样越是从基础开始补啊,要不然到将来对VC根深入的学习时都不知道问题出在哪里。
总结一下,BYTE, WORD, DWORD和进制之间的关系,当时在Digital circuit课程中感觉硬件学的还可以,所以现在理解并不困难。 具体地讲, VC中,一个BYTE类型代表8个二进制位,也就是类似00000000~11111111一串二进制数。 一个WORD类型等价于两个BYTE, 也就是一组16个二进制位标示的数。 而一个DWORD等于两个WORD,也就是32个二进制位。 每4个二进制位等价于一个16进制数的基数,所以, 一个字节可以用二个16进制基数来表示。 16进制基数与BYTE, WORD, DWORD有如下关系。 BYTE = 0xFF FF WORD = 2 * BYTE = 0xFF FF FF FF DWORD = 2 * WORD = 4 * BYTE = 0x FF FF FF FF FF FF FF FF 当在VC中使用 << 或 >> 操作符时,逻辑上应该保证尽量使用无符号数(这样可以减少因为符号位在移动后带来的错误几率), 移动的位数尽量小于 变量类型的二进制位数, 否则产生不可预料的错误。
输出:Debug/Release下均为 unsigned int, int, 1, -1, 1 |
|