为什么DWORD值通常用十六进制表示?

Gre*_*ons 9 c++ windows hex dword visual-c++

我试图理解为什么在MSDN上的十六进制中经常描述DWORD值.

我之所以分析这个原因,是因为我试图从根本上理解为什么存在所有这些不同数量的数据类型.一位当地导师向我提到,DWORD和其他微软类型的创建与处理器的发展有关.这为我理解这些数据类型提供了意义和背景.我想要更多背景和背景.

无论哪种方式,我可以使用一些解释或一些资源来记住如何记住DWORD,无符号整数,字节,位,WORD等之间的区别.

总之,我的问题是:1)为什么DWORD以十六进制表示?2)您能否就数值数据类型之间的差异及其创建原因提供资源?

Tim*_*Tim 10

计算机中的所有东西都是一堆0和1.但是用二进制编写整个DWORD非常繁琐:

00000000 11111111 00000000 11111111
Run Code Online (Sandbox Code Playgroud)

为了节省空间并提高可读性,我们希望以更短的形式编写它.十进制是我们最熟悉的,但不能很好地映射到二进制.八进制和十六进制映射非常方便,与二进制位完全对齐:

// each octal digit is exactly 3 binary digits
01 010 100 binary  =  124 octal

// each hexadecimal digit is exactly 4 binary digits
0101 0100 binary   =  54 hexadecimal
Run Code Online (Sandbox Code Playgroud)

由于十六进制排列非常好,8位字节(2个十六进制数字构成一个字节),符号卡住,这是最常用的.它更容易阅读,更容易理解,更容易排队使用位掩码.

标识正在使用的基数的正常速记:

  1234543 = decimal
 01234543 = octal (leading zero)
0x1234543 = hexadecimal (starts with 0x)
Run Code Online (Sandbox Code Playgroud)

至于你关于BYTE,WORD,DWORD等的问题......

计算机开始了一点.只有1或0.他在原来的Tron中有一个客串.

字节长度为8位(好吧,曾几何时有7位字节,但我们可以忽略它们).这允许你有一个0-255的数字,或从-128到127的有符号数.优于1/0,但仍然有限.您可能听说过"8位游戏".这就是我们所说的.该系统是围绕Bytes构建的.

然后计算机变得有16位寄存器.这是2字节,并被称为WORD(不,我不知道为什么).现在,数字可以是0-65535或-32768到32767.

我们继续需要更多功率,计算机扩展到32位寄存器.4个字节,2个单词,也称为DWORD(双字).到目前为止,您可以查看"C:\ Windows"并查看"system"(旧的16位片段)和"system32"(新的32位组件)的目录.

然后是QWORD(四字).4个字,8个字节,64位.有没有听过Nintendo-64?这就是这个名字的来源.现代建筑现在在这里.cpu的内部包含64位寄存器.您通常可以在此类cpu上运行32位或64位操作系统.

这包括Bit,Byte,Word,Dword.这些是原始类型,经常用于标志,位掩码等.如果要保留实际数字,最好使用有符号/无符号整数,长整数等.

我没有涵盖浮点数,但希望这有助于一般的想法.