1.DWORD是什么数据类型
百度百科里就说的很详细了
DWORD值(REG_DWORD)
由 4 字节长(32 位整数)的数字表示的数据。设备驱动程序和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。REG文件中一般表现为“a”=“dword:00000001”。1个二进制位称为1个bit(位),8个二进制位称为1个Byte(字节),8 bit = 1 byte。2个字节就是1个Word(1个字,16位),DWORD(Double Word)就是双字的意思,两个字(32位)。
2.C语言有没有DWORD数据类型
C语言没有DWORD数据类型
DWORD数据类型是windows定义的数据类型,不是标准c中的数据类型。
C 语言包含的数据类型如下图所示:
DWORD 就是 Double Word, 每个word为2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32位。
可以如下自定义DWORD:
typedef unsigned int DWORD;
3.注册表中“DWORD值”是什么含义
DWORD 就是 Double Word, 每个word为2个字节的长度,每个字节是8位,共32位
注册表的键值
在键值项窗口空白处单击右键,选择“新建”菜单项,可以看到这些键值被细分为:字符串值、二进制值、DWORD值、多字符串值、可扩充字符串值五种类型
符串值(REG_SZ)
该值一般用来作为文件描述和硬件标志,可以是字母、数字,也可以是汉字,但它是长度固定的文本字符串,最大长度不能超过255个字符。REG文件中一般表现为:“a”=“****”。
二进制值(REG_BINARY)
一般情况下,大多数硬件组件信息以二进制数据存储,然后通过十六进制的格式显示在注册表编辑器中。该类型值没有长度限制,可以是任意字节长,REG文件中一般表现为:“a”=“hex:01,00,00,00”。
DWORD值(REG_DWORD)
由 4 字节长(32 位整数)的数字表示的数据。设备驱动程序和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。REG文件中一般表现为“a”=“dword:00000001”。
4.DWORD值的问题
我的理解:1个二进制位称为1个bit,8个二进制位称为1个Byte,也就是1个字节(8位),2个字节就是1个Word(1个字,16位),则DWORD(DOUBLE WORD)就是双字的意思,两个字(32位)
而REG-DWORD是指双字的数据在注册表中以十六进制数来表示,那么1个32位的二进制数用十六进制数来表示,当然只需要1-8位就够了
所以它们不矛盾,资料一说的是十六进制的表示方式,资料二说的是二进制的表示方式,当然不一样了,至于它们的转换,你可以参考一些资料,一般4个二进制位可以用1个十六进制位来表示,那么32个二进制位当然就用8个十六进制位来表示了