BYTE WORD DWORD
一、定义
在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
BYTE WORD DWORD相关推荐
- BYTE,WORD,DWORD的大小及一些特殊的高低位宏(取高位 取低位)
一.定义 在VC6.0的Microsoft Visual Studio/VC98/Include/windef.h 里,定义了BYTE,WORD,DWORD typedef unsigned long ...
- Bit,Byte,Word,Dword,Qword
八个比特(Bit)称为一个字节(Byte),两个字节称为一个字(Word),两个字称为一个双字(Dword),两个双字称为一个四字(Qword). [转载] 32位和64位CPU.操作系统的区别 + ...
- bit,Byte,Word,DWORD(DOUBLE WORD,DW)
1个二进制位称为1个bit,8个二进制位称为1个Byte,也就是1个字节(8位),2个字节就是1个Word(1个字,16位),则DWORD(DOUBLE WORD)就是双字的意思,两个字(4个字节/3 ...
- ARM64 BYTE/WORD/DWORD/QWORD 与 Wn/Xn
BYTE,1个字节,8位,一般用Wn存储 WORD,2个字节,16位,一般用Wn存储 DWORD,4个字节,32位,一般用Wn存储 QWORD,8个字节,64位,一般用Xn存储
- WORD数据类型数据类型及 Bit,Byte,WORD,DWORD区别和联系
typedef unsigned short WORD; 16位短整数,可以表示0-65535之间的整数 而char是8位. int和机器类型有关.如16位机,就表示16位.32位机就表示32位 基本 ...
- 汇编BYTE,WORD,DWORD区别
BYTE为1字节, WORD为2字节, DWORD为4字节
- 类型BYTE,WORD与DWORD
做程序最烦人的就是碰到,程序没什么语法错误,编译通过,运行也通过,就是不出结果的情况.昨晚晕晕乎乎的搞了三个小时,没搞出来的程序,就刚才一小会的功夫就看出来了,原来是数据类型搞错了.本来该是DWORD ...
- 计算器中,Byte,Word, Dword, Qword
HEX :十六进制 Hexadecimal DEC :十进制 Decimal OCT :八进制 Octal BIN :二进制 Binary 1.MC:清除存储器中的数值. Memory Clear 2 ...
- 位,字节和字区别(bit,byte,word)
位(bit)是计算机中最小(基本)的单位,是个二进制位(二进制表示:0或者1) 一个字节(byte)等于8位二进制位(bit) 1Byte=8Bit (二进制表示:00000001) 机器字长(Wor ...
最新文章
- 谷歌李飞飞:我们依旧站在人工智能研究的起点
- Error: unterminated string literal。通常原因是输出字符str中包含换行符导致的。
- dockerfile COPY ADD 命令
- linux tar 提示 time stamp xxx in the future 解决方法
- 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo项目分析
- C#——自定义泛型链表DEMO
- android 代码 截取屏幕,如何以编程方式在Android上截取屏幕截图?
- python的开发环境有哪些系统_Win10下配置机器学习python开发环境
- C语言正则表达式regex
- 网约车司机无证最低罚款拟从10000元降至200元
- 转:mysql show processlist命令 详解
- 初级计算机课,教学ppt课件计算机初级培训.ppt
- from PyQt4 import QtGui,QtCore出错
- win7蓝牙热点自动断开
- HarmonyOS 系统架构
- velodyne16驱动调试记录
- FPGA mpsoc vitis SDK PMU-FW is not running, certain application may not be supported
- 万字拆解自嗨锅:造价近百万的直播间,是单场直播GMV破100万的法门吗?
- SAP中使用LSMW批量导入总账科目
- Day2快捷键+简单Dos命令
热门文章
- UltraISO打开Ubuntu镜像ISO文件只有EFI文件夹
- Win11删除EFI分区
- 动词ing基本用法_动词 ing的用法
- 贝尔链CEO Vincent:让游戏玩家从趣味消费到价值收益
- 锐龙9 7845HX 和锐龙9 6900HX选哪个 r9 7845HX 和6900HX差距
- 32位和64位操作系统的最大内存计算方法
- 一手掌控美食新鲜“灵魂”且融汇到生活的方方面面
- 中国本土便利店遍地开花,7-Eleven便利店入华为何“水土不服”?
- 2022张宇考研基础30讲 第十三讲 常微分方程
- 架狗屎:聊一聊 Spring Boot 服务监控机制