VC 数据类型 BYTE WORD DWORD
发布日期:2022-02-01 14:28:13
浏览次数:34
分类:技术文章
本文共 1801 字,大约阅读时间需要 6 分钟。
一、定义 在VC6.0的Microsoft Visual Studio/VC98/Include/windef.h 里,定义了BYTE,WORD,DWORD typedef unsigned long DWORD; typedef unsigned char BYTE; typedef unsigned short WORD; 即: BYTE:8位 WORD: 16位 DWORD: 32位 二、Window 宏 1.LOBYTE( 从给定16位值中提取低位字节) BYTE LOBYTE( WORD wValue // value from which low-order byte is retrieved ); #define LOBYTE(w) ((BYTE) (w)) 如:WORD w=-0x1234;//w在内存中以补码形式存储:0xedcc,即0xcc(低地址) 0xed(高地址) printf("w的低位字节:%x/n",LOBYTE(w));//输 出:w的低位字节:cc 2.HIBYTE( 从给定16位值中提取高位字节) BYTE HIBYTE( WORD wValue // value from which high-order byte is retrieved ); #define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF)) 如:printf("w的高位字节:%x/n",HIBYTE(w));// 输出:w的高位字节:ed 3.LOWORD(从给定32位值中提取低位word) WORD LOWORD( DWORD dwValue // value from which low-order word is retrieved ); #define LOWORD(l) ((WORD) (l)) 如: DWORD l = 0x12345678;//l在内存中存储为:0x78,0x56,0x34,0x12 printf("l的低位字:%x/n",LOWORD(l));// 输出:l的低位字:5678 4.HIWORD(从给定32位值中提取高位word) WORD HIWORD( DWORD dwValue // value from which high-order word is retrieved ); #define HIWORD(l) ((WORD) (((DWORD) (l) >> 16) & 0xFFFF)) 如:printf("l的高位字:%x/n",HIWORD(l));//输出:l的高位字:1234 5.MAKEWORD(将两个给定的无符号字符值连接成为一个16位整数) WORD MAKEWORD( BYTE bLow, // low-order byte of short value BYTE bHigh // high-order byte of short value ); #define MAKEWORD(a, b) / ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8)) 如: BYTE bLow=0x34,bHigh=0x12; printf("MAKEWORD(%x,%x)=%x/n",bLow,bHigh,MAKEWORD(bLow,bHigh)); 输出结果为: MAKEWORD(34,12)=1234
6.MAKELONG(将两个给定的16位值连接成为一个32位整数)
DWORD MAKELONG( WORD wLow, // low-order word of long value WORD wHigh // high-order word of long value ); #define MAKELONG(a, b) / ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16)) 如:WORD vLow=0x5678,vHigh=0x1234; printf("MAKELONG(%x,%x)=%x/n",vLow,vHigh,MAKELONG(vLow,vHigh)); 输出结果:MAKELONG(5678,1234)=12345678转载地址:https://blog.csdn.net/shunlu/article/details/8193641 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年03月27日 05时33分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Emacs-014-已输入单词自动补全功能
2019-04-27
Emacs-017-company插件的配置
2019-04-27
Emacs-018-实现光标跳转到指定行
2019-04-27
Emacs-021-shell模式
2019-04-27
Emacs-022-光标以字符或者单词为单位跳转
2019-04-27
Emacs-023-光标跳转到行首或者行尾
2019-04-27
Web001-Win7中安装IIS7
2019-04-27
Web002-IIS安装是否成功测试.docx
2019-04-27
Emacs-024-光标修改为竖线
2019-04-27
Emacs-028-文本编辑中的删除操作
2019-04-27
Emacs-032-关闭当前Buffer
2019-04-27
Emacs-102-spacemacs使用vim导航键在文件清单中移动
2019-04-27
Emacs-103-使用spacemacs自带配置显示行号
2019-04-27
Emacs-204-company popup功能失效
2019-04-27
Emacs-205-Emacs的管理模块化
2019-04-27
Emacs-206-Windows上实现org-pomodoro的声音提示播放
2019-04-27
Emacs-207-Emacs org-mode与主题
2019-04-27
Emacs-208-搜索工程中的文件
2019-04-27
Emacs-209-使用projectile管理工程
2019-04-27
Emacs-210-使用projectile生成工程TAGS
2019-04-27