计算机中的所有内容都是一堆 0 和 1。但是用二进制写整个 DWORD 是相当乏味的:
00000000 11111111 00000000 11111111
为了节省空间并提高可读性,我们喜欢以较短的形式编写它。十进制是我们最熟悉的,但不能很好地映射到二进制。八进制和十六进制映射非常方便,与二进制位完全对齐:
// 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
由于十六进制与 8 位字节非常吻合(2 个十六进制数字构成一个字节),因此这种表示法被卡住了,这也是最常用的表示法。当使用位掩码时,它更容易阅读,更容易理解,更容易排列。
识别正在使用哪个碱基的正常简写:
1234543 = decimal
01234543 = octal (leading zero)
0x1234543 = hexadecimal (starts with 0x)
至于你关于 BYTE、WORD、DWORD 等的问题......
计算机是从一点开始的。只有 1 或 0。他在原版《创》中客串过。
字节有 8 位长(好吧,曾经有 7 位字节,但我们可以忽略它们)。这允许您拥有 0-255 之间的数字,或 -128 到 127 之间的带符号数字。比 1/0 好,但仍然有限。您可能听说过“8 位游戏”。这就是我们所指的。该系统是围绕字节构建的。
后来计算机发展到拥有 16 位寄存器。这是 2 个字节,并被称为“字”(不,我不知道为什么)。现在,数字可以是 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 位操作系统。
涵盖位、字节、字、双字。这些是原始类型,通常用于标志、位掩码等。如果您想保存实际数字,最好使用有符号/无符号整数、长整型等。
我没有介绍浮点数,但希望这对总体思路有所帮助。