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

2024-03-29

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

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

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

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


计算机中的所有内容都是一堆 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 位操作系统。

涵盖位、字节、字、双字。这些是原始类型,通常用于标志、位掩码等。如果您想保存实际数字,最好使用有符号/无符号整数、长整型等。

我没有介绍浮点数,但希望这对总体思路有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 DWORD 值通常以十六进制表示? 的相关文章

  • 为什么即使实际类型直到最后才定义,依赖名称也可以被认为是完整的

    考虑这个例子 https godbolt org z JQK tu template
  • 解决方案将无法构建,因为它无法从服务生成的类型转换为我的类型

    我有一个 WCF 服务项目 它构建得很好 可以生成可访问的 WSDL 并且 svcutil exe 不会生成任何错误 我有一个访问该 Web 服务的 服务管理器 项目 并且我已成功向其中添加了服务引用 ABCService 第三个项目包含我
  • 0x0A 和 0x0D 之间的区别

    我正在研究蓝牙 我试图编写代码以在连接时继续监听输入流 我遇到了以下代码片段 int data mmInStream read if data 0x0A else if data 0x0D buffer new byte arr byte
  • Xamarin 中的 Task.ConfigureAwait(false) - 安全使用/建议使用?

    经验法则是 如果它不是与 UI 相关的方法 请使用Task ConfigureAwait false 如果我有一个接受接口的 PCL 核心库怎么办IUIAccess 核心库中的视图模型有一个方法 public Task ViewModelL
  • 初始化影子变量

    标准中是否有任何内容定义从它隐藏的变量初始化变量 例如 int i 7 int i i Visual Studio 2013 允许这样做而不发出警告并按预期工作 内在i变量是 7 然而 Clang 和 GCC 给我一个警告 关于从自身初始化
  • 提升解析器中的 Spirit 段错误

    我一直在尝试将我在本科编译器中编写的一些 lex 和 yacc 代码转换为精神代码以学习精神 我发现了一个我似乎无法弄清楚的段错误 我这样写了词法分析器 namespace lex boost spirit lex enum Tokens
  • 如何在 javascript 中使用 .net 资源文件

    无论如何 我可以在 javascript 中访问我的资源文件 resx 吗 如果没有 那么是否有任何解决方法可以用不同语言的 javascript 显示消息 如果您的 javascript 在页面中 您可以使用 var globalReso
  • 阅读 C 语言中的科学记数法

    我正在尝试读取包含以下内容的文件 1 0000000e 01 2 9265380e 03 5 0821200e 02 4 3231640e 01 2 0000000e 01 1 0170240e 04 9 2798610e 02 4 072
  • 从 C 调用带有字符串参数的 Go 函数?

    我可以从 C 调用一个没有参数的 Go 函数 按照下面的 https github com joeprivacy crefgo hello world 这通过编译go build和打印 Hello from Golang main func
  • 如何在 Firebase 实时数据库上安排通知?

    我正在为我工 作的公司开发一个 flutter 通信应用程序 但我遇到了两个问题 这是我需要做的 1 向用户组或特定用户发送通知 并将这些通知保存在数据库或json文件中 该列表将作为 最新新闻 出现在我的应用程序的主屏幕上 问题是 当应用
  • 使用 Xlib 捕获鼠标

    我想编写一个简单的 Xlib 程序来改变鼠标行为 举个例子 反转垂直移动 我在捕获事件时遇到问题 我想要代码 捕获控制器位置的变化 我向上移动鼠标 MotionEvent 计算新的光标位置 new x difference x 设置新的光标
  • 使用 Mono Cecil 添加 try-catch

    我正在使用 Mono Cecil 在另一个方法中注入代码 我想在我的代码周围添加一个 Try Catch 块 所以我写了一个带有 try catch 块的 HelloWorld exe 并反编译了它 Try Catch 的 Reflecto
  • 接收UDP数据包

    假设我的程序通过网络 UDP 发送 1000 字节 它是否保证接收方将 一批 接收 1000 个字节 或者他可能需要执行多次 读取 直到收到完整的消息 如果后者为真 我如何确保同一消息的数据包顺序不会 混淆 按顺序 或者协议可能保证这一点
  • 可变长度数组性能影响 (C/C++)

    我正在编写一个相当简单的函数 它将数组发送到文件描述符 但是 为了发送数据 我需要附加一个一字节标头 这是我正在做的事情的简化版本 它似乎有效 void SendData uint8 t buffer size t length uint8
  • 如何声明和定义具有推导类型的静态成员?

    我需要定义一个具有复杂 许多模板参数 类型的静态成员 不是 constexpr 因此 希望有这样的东西 struct X static auto x makeObjectWithComplexType 但它不是 C 所以我尝试解决它 并认为
  • 非数字输入导致死循环

    由于某种原因 如果用户输入了错误的数据类型 例如 j 或 循环将停止要求输入并继续显示 Enter an integer gt 一遍又一遍 如何让程序处理错误的输入 为什么输入非数字值会导致如此奇怪的行为 define SENTINEL 0
  • Plink 通过 C# 返回不需要的字符

    通过 C 使用 Plink 时 我在结果前后收到不需要的字符 Command ls l informatica tgtdynamicparams out grep vaulttest grep Sep 1 awk print 9 sort
  • 如何在网格视图中突出显示文本的结果? [复制]

    这个问题在这里已经有答案了 可能的重复 如何突出显示某个单词 https stackoverflow com questions 9546761 how can i highlight a word 我有一个网格视图和一个文本框 用于从列中
  • 绑定到外部库中基本方法的方法无法处理“之间”的新虚拟方法

    假设我有一个库 版本 1 0 0 包含以下内容 public class Class1 public virtual void Test Console WriteLine Library Class1 Test Console Write
  • OledbConnection.Dispose() 是否关闭连接? [复制]

    这个问题在这里已经有答案了 可能的重复 如果使用 using 子句 是否需要关闭 DbConnection https stackoverflow com questions 12033998 is there any need to cl

随机推荐

  • 在 fortran 中生成序列数组

    Fortran中是否有一个内在函数可以生成一个包含从a到b的数字序列的数组 类似于python的range gt gt gt range 1 5 1 2 3 4 gt gt gt range 6 10 6 7 8 9 不 没有 但是 您可以
  • 获取完整的正在运行的进程列表(Visual C++)

    我目前正在使用 EnumProcesses 函数来获取正在运行的进程的列表 然而 由于我的应用程序在用户空间中运行 因此它无法获取不在用户下运行的进程 包括系统进程 的句柄 是否有其他方法可以让我访问这些内容 我所需要的只是进程名称 只是为
  • Android:减少 GridView 中列之间的空间

    请参阅随附的屏幕截图 其中我试图减少 GridView 中列之间的空间 我的main xml如下
  • SQL 选择一行并存储在 SQL 变量中

    所以 我正在编写这个存储过程 但我对 SQL 真的很烂 我向你们提出的问题是 我可以选择整行并将其存储在变量中吗 我知道我可以做类似的事情 declare someInteger int select someInteger select
  • 日期时间格式和时区

    当尝试解析日期时DateTime createFromFormatPHP 将无法识别时区 Example t new DateTime echo t gt format Y m dTH i s 将输出 2012 01 24MSK16 53
  • Rails 控制台错误需要'./example_user'

    我正在使用 Railstutorialhttp ruby railstutorial org chapters rails flavored ruby sec a user class http ruby railstutorial org
  • sqlite get 字段超过 2 MB [重复]

    这个问题在这里已经有答案了 当我尝试从 SQlite 获取数据且字段大小超过 2 MB 时 它会抛出异常 Couldn t read row 0 col 0 from Cursor Window Make sure the Cursor i
  • .Net TPL:具有任务优先级的有限并发级别任务调度程序?

    我目前正在使用 LimitedConcurrencyLevelTask Scheduler 详细信息请参见此处http msdn microsoft com en us library ee789351 aspx http msdn mic
  • 当应用于基本类型时,通过引用进行 const 调用是否会提高性能?

    对于对象 尤其是字符串 按引用调用比按值调用更快 因为函数调用不需要创建原始对象的副本 使用const 还可以确保引用不被滥用 我的问题是 如果使用基本类型 如 bool int 或 double const 按引用调用是否也会更快 voi
  • 在多个环境中执行编码的 UI 测试

    现在 我的编码 UI 测试使用它们的 app config 来确定它们执行的域 该域与环境具有 1 1 关系 为了简化它 测试网 www UAT com www prod com 在 App config 中我有类似的内容
  • Mathematica 什么时候创建新符号?

    再会 我早些时候以为数学在当前符号中创建新符号 Context在转换输入字符串的阶段 即分配给InString 来输入表达式 即分配给In 但一个简单的例子打破了这一解释 In 1 f During evaluation of In 1 I
  • 在 .NET Core 3.0 中加载 exe 时出现错误的 IL 格式

    我有两个 NET Core 3 0 WPF 项目 其中之一 我发布到一个名为 DefaultPlugin exe 的可执行文件中 在我的第二个 WPF 项目中 我尝试使用 Assembly Load 加载第一个项目并读取类型 但是 当我这样
  • 根据android中图表引擎饼图中的屏幕大小标记文本大小

    我成功使用图表引擎显示饼图 我想根据屏幕尺寸自定义标签文本大小 提前致谢 这个问题归结为解决问题 achartengine 的设计似乎考虑到了原始像素 而显示质量和像素密度在过去几年中显着提高 achartengine 示例中的标签在我的
  • LESS mixin 变量类名

    我正在使用 Font Awesome 4 0 0 并且想要在 LESS 中执行类似的操作 btn github btn btn primary margin left 3em i fa css prefix fa css prefix gi
  • 在C++中,如何读取一个文本文件的内容,并将其放入另一个文本文件中?

    我想阅读a的内容input txt文件并将其放入output txt文件 我尝试在下面的代码中执行此操作 但没有成功 我是新手C 文件操作 你能告诉我该怎么做吗 include
  • wiki 如何处理多个同时编辑?

    这件事一直萦绕在我的脑海里 所以我想我还是去问问吧 wiki 如何处理对同一内容的多次编辑 这是我所要求的一个简单的例子 假设一个页面包含以下内容 我是一页 现在假设有两个人去编辑该页面 每人加一句话 第一个人 我是一页 我是同一页的第二句
  • 在RSelenium中指定下载文件夹

    我在用RSelenium导航至包含下载文件按钮的网页 我使用 RSelenium 单击此按钮来下载文件 但是 文件默认下载到我的文件夹 下载 中 而我希望将文件下载到我的工作目录中 我尝试指定一个 chrome 配置文件 如下所示 但这似乎
  • 如果我在 Fragments 中使用 ViewBinding,onDestoryView() 之后会出现 NPE 吗?

    我正在尝试在片段中使用 ViewBinding 首先 谷歌是这样说的 注意 碎片比他们的观点更长久 确保清除片段的 onDestroyView 方法中对绑定类实例的所有引用 在片段中使用视图绑定 https developer androi
  • 如何在 gnuplot 中设置网格间距

    我的 yaxis 从 0 到 100 我想要每 10 个单位后有一条网格线 我怎样才能做到这一点 即如何在每10个单位之后绘制网格线 看看 帮助网格 你可能想做类似的事情 set yrange 0 100 set xrange 0 10 s
  • 为什么 DWORD 值通常以十六进制表示?

    我试图理解为什么 DWORD 值经常在 MSDN 上以十六进制描述 我分析这个的原因是因为我试图从根本上理解为什么所有这些不同的数字数据类型存在 一位当地导师向我暗示 DWORD 和其他 Microsoft 类型的创建与处理器的发展有关 这