为什么计算机在汇编语言中使用十六进制数字系统?

2023-12-10

为什么计算机在汇编语言中使用十六进制数字系统?他们为什么不使用任何其他数字系统,如二进制、八进制、十进制?是什么迫使计算机设计者在组装时使用十六进制系统?为什么它看起来对他们如此有利?


计算机不使用十六进制。计算机中没有任何组件处理十六进制值。相反,计算机大部分工作在二进制值上,即数字“是”和“否”信息,表示为“施加电压”和“无电压”,也称为“hi”和“lo”,或“1”和“ 0"

但是,由于将二进制数字表示为 0 和 1 的字符串会使它们难以阅读,因此使用十六进制作为一种快捷方式:4 位组(那些 1 和 0 信息)被表示为一个十六进制数字。 从二进制到十六进制的转换非常简单,反之亦然。将二进制转换为十进制,或将十进制转换为二进制,涉及更多操作。

因此,十六进制系统不是由计算机使用,而是由人类使用,用于更简洁地表示二进制数字,但比十进制数字系统更容易转换。

十六进制数还有另一个特征,这使得它们比十进制数更受欢迎:两个数字之间的更改仅涉及翻转一位或几位的情况并不罕见。生成的十进制数看起来会非常不同 - 变化的位的值越高,差异越大。在十六进制数中,只有覆盖已更改位的数字发生变化,其余数字保持其值。这有助于在心里对这些十六进制数字代表的值进行分组。

除了十六进制之外,八进制系统也经常使用。它的缺点是一个八进制数字只能描述一组 3 位,而不是 4 位。由于计算机中的二进制数(例如地址)通常具有 2 的幂范围,因此这些数字更适合以 4 为一组而不是以一组为单位三个。

不存在人类“被迫”使用十六进制进行组装的情况。这只是一个方便的事情。

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

为什么计算机在汇编语言中使用十六进制数字系统? 的相关文章

  • 如何在Java中实现复合模式?

    我想实现一个复合模式Java以便绘制软件开发组织图 因此 我们假设有多个项目经理和多个开发人员 每个开发人员都被分配给一位项目经理 并且每个开发人员都能够使用各种编程语言进行编码 项目经理领导开发人员并准确了解他们的工作量 我对这个设计模式
  • IDA pro asm 指令更改

    我只是想知道我怎样才能 更改IDA视图A中的asm指令 如何编辑指令 对于 实例 jnz 到 jmp 如何插入新指令 call func1 调用 func2 插入到现有的 代码 我知道如何制作 diff 文件 我知道如何在我的 DLL 上应
  • 如何在WinMobile6上启用ARMv6非对齐访问?

    ARMv6 引入了一个很棒的功能 未对齐的内存访问 这使得代码中的某些事情变得更加简单和更快 但微软只在winCE6中提供了API 现在大多数 PDA 都基于 WinMobile6 基于 CE 5 x 默认情况下禁用未对齐访问 我尝试在 C
  • 一个地址有多少字节? [复制]

    这个问题在这里已经有答案了 在64位机器上 我们知道一个地址是8个字节 然而 我并不完全清楚一个地址中有多少字节的信息 虚拟内存中的每个字节都有一个地址吗 或者内存中的每 64 位都有一个地址 还是取决于架构 如果这取决于架构 那么我应该如
  • Polygot 包含 nasm/yasm 和 C 的文件

    我有一堆幻数 我想将它们包含在由 nasm 或 yasm 编译的 C 程序和汇编文件中 在纯 C 语言中 该文件看起来像是一系列定义 例如 define BLESS 55378008 define ANSWER 42 在 nasm 或 ya
  • Web 应用程序架构 - 需要作业/任务队列吗?

    我目前正在设计一个 Web 应用程序 该应用程序将允许用户安排将针对 HTTP API 代表他们 执行的任务 这些任务可以重复出现 并且可用于调度的最小时间分辨率为一分钟 由于任务的性质 我认为异步执行它们是有意义的 但是 这部分的架构应该
  • ICC 中的 -O3 会扰乱内在函数,使用 -O1 或 -O2 或相应的手动汇编即可

    这是后续这个问题 http stackoverflow com questions 49791664 o2 in icc messes up assembler fine with o1 in icc and all optimizatio
  • 难以理解汇编命令“加载有效地址”[重复]

    这个问题在这里已经有答案了 可能的重复 LEA 指令的目的是什么 https stackoverflow com questions 1658294 whats the purpose of the lea instruction LEA指
  • 如何在 MacOS 上使用 nasm 进行编译

    我正在尝试在汇编器上编译并链接我的第一个程序 我尝试编译以下代码 include stud io inc global main section text main xor eax eax again PRINT Hello PUTCHAR
  • 无法构造 String 类型

    我正在使用 Web api 和 Unity 并且在尝试打开默认 帮助 区域时收到以下错误 InvalidOperationException The type String cannot be constructed You must co
  • intfmt: db "%d", 10, 0 在汇编中的含义

    我最近在我的一个汇编文件的顶部看到了这个 并意识到我在打印整数的过程中花了很长时间使用它 而没有真正意识到它最初来自哪里 在我的基本汇编模板中使用 或 10 0 是什么结尾的意思是 section data intfmt db d 10 0
  • 有人还在使用客户端服务器架构吗[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我编写软件已有几十年了 现在一切都是网络 在网络出现之前 我们拥有的客户端服务器应用程序基本上是直接与数据库对话的胖客户端应用程序 它
  • Java - 将无符号十六进制字符串解析为有符号长整型

    我有一堆十六进制字符串 其中之一是 d1bc4f7154ac9edb 这是 3333702275990511909 的十六进制值 如果执行 Long toHexString d1bc4f7154ac9edb 这与您得到的十六进制相同 现在
  • INT 13h 无法读取超出特定扇区的数据

    我正在为我的操作系统编写内核 在将磁盘扇区加载到内存时遇到问题 以下是从磁盘加载扇区的函数代码部分 mov ax 0x3000 mov es ax mov ax 0x0201 mov bx word ptr bp 6 bx 0x000 0x
  • 在现代 x86-64 上计算 64 位整数的整数 Log10 的最快方法是什么?

    标题 我找到了大量 32 位示例 但没有找到完整的 64 位示例 使用这个帖子 https codegolf stackexchange com questions 47290 fastest way to compute order of
  • gpg:抱歉,根本没有请求终端 - 无法获取输入

    解密时出现以下错误 eyaml decrypt s ENC and the key goes on here gnupg quiet no secmem warning no permission warning no tty yes de
  • 寻找有效的移位/加法/LEA 指令序列来乘以给定常量(避免 MUL/IMUL)

    我正在尝试编写一个 C 程序 mult c 它有一个接收 1 个 int 参数的 main 函数 用atoi argv 1 这是一些常数k我们想要乘以 该程序将生成一个汇编文件mult s实现 int mult int x return x
  • 气体:内存引用太多

    编译时指令如下 movl 4 ebp 8 ebp I got 内存引用过多 它出什么问题了 括号之前的数字是字节偏移量 这会导致发生内存引用 并且不能有两个movl 您需要先将值暂时移至寄存器 movl 4 ebp ecx movl ecx
  • 了解汇编语言中的 cmpb 和循环

    我有一个函数 string length 它具有以下汇编代码 0x08048e90 lt 0 gt push ebp 0x08048e91 lt 1 gt mov esp ebp 0x08048e93 lt 3 gt mov 0x8 ebp
  • PouchDB可以在客户端代理一个大数据库吗?

    在单页应用程序上工作时 我必须编写大量样板代码才能与服务器端数据同步 PouchDB http pouchdb com 为这个问题提供了一个优雅的解决方案 允许在客户端本地访问数据 我不明白的是 当数据库太大而无法完全适应浏览器内存时 Po

随机推荐

  • 为什么我们使用MapSqlParameterSource

    我是 Spring 世界的新手 在上面的代码中我理解查询 但我不明白为什么 使用 new MapSqlParameterSource 用户名 用户名 public boolean exists String username return
  • 何时使用 Sqoop --create-hive-table

    谁能说出两者之间的区别create hive table hive import方法 两者都会创建一个 Hive 表 但各自的意义是什么 配置单元导入命令 hive import命令自动填充 hive 元存储中填充表的元数据 如果Hive中
  • 如何设置从javascript打印的份数[重复]

    这个问题在这里已经有答案了 我正在尝试使用 javascript 的打印方法打印文档 现在我想设置打印份数 默认情况下它将打印 1 份 我想将份数设置为两份 2 份 是否可以通过js代码来做到这一点 我们可以通过打印机设置进行设置 但它会打
  • 使用 nodemailer 通过 Node.js 发送电子邮件不起作用

    我已经在本地设置了一个基本的 NodeJS 服务器 使用 nodemailer 模块 http localhost 8080 只是为了测试服务器是否真的可以发送电子邮件 如果我正确理解 SMTP 选项 如果我错了 请纠正我 我可以尝试从我的
  • 2048 游戏的正确方块移动

    我决定制作 2048 命令行版 但我在获得正确的图块移动方面遇到困难 我当前的结构是棋盘是一个 2D 整数数组 4x4 当接收到输入时 它会尝试将每个图块推向该方向 忽略值为 0 的图块 如果它注意到变化 它将重新开始 因为底行的图块必须一
  • 如何访问对象标签中加载的 HTML 元素?

    例如 使用 jQuery 获取文本输入值 username val 我曾尝试过这个this问题 这是我的代码 div div window load function siteloader html setTimeout function
  • AWS S3 复制/粘贴不复制元数据

    使用 Amazon Web 界面 可以将 S3 对象从一个存储桶复制到另一个存储桶 但是 粘贴的对象不具有原始对象的元数据 如何同时粘贴元数据 我猜测 CLI 可以做到这一点 但我不知道如何做到 请注意 元数据必须与对象一起创建 以便在 S
  • 使用无表单的Post方法发送数据

    我想将数据发送到 API 数据包括简单的变量 用户名 密码 电子邮件等 问题是 O 想使用 POST 方法向此发送数据 我在Google上搜索了这个问题 每个人都说去CURL 什么是卷曲 它是函数 脚本 API 还是什么 还有其他方法吗 我
  • VBA:为什么使用属性而不是子例程或函数?

    为什么我们需要使用财产Let Get and Set在 VBA 类中 我们可以使用子例程或函数简单地传递和返回参数吗 我认为简短的答案是属性是类的特征 而方法 子例程 是操作 我对此的解释是 属性是 形容词 方法是 动词 我们可以做一个类比
  • 在 C# 中反序列化对象列表

    I Use Json转换序列化对象并将其保存在数据库中 这是我保存在数据库中的序列化字符串的示例 matId 1 value 44 matId 2 value 55 matId 4 value 77 现在 当我从数据库获取这个字符串时 它有
  • Angular 2+ 应用程序上的嵌入式 Twitter 小部件仅在首页加载时显示

    如果我完全复制 Twitter 文档中的内置函数 https dev twitter com web javascript loading 进入 ngAfterViewInit 函数 但是当我切换路线时 小部件也会消失 以下是仅适用于第一页
  • NotificationHubUnauthorizedException:Azure 通知中心注册未经授权

    所以我正在尝试 Azure 上的通知中心 我已经根据这篇博文 我已经在 Android 代码中完成了 GCM 设置 因此我有一个有效的 regId String connectionString Endpoint sb
  • 扩展散点图中的 x 和 y 轴长度,d3js

    我正在尝试延长 x 和 y 轴长度并在末尾添加箭头 这是我的代码和插件 我需要 x 轴延伸到 4 6 之外 y 轴延伸到 AS 之外 并在末尾添加一个箭头 请帮忙 https plnkr co edit tA6oyKQCCmhNadbARR
  • 在应用程序启动时调用 XNA GraphicsDeviceManager.ApplyChanges() 会导致闪烁

    我有一个函数 其中包含以下代码 GameStateManagementGame GraphicsDeviceManager PreferredBackBufferWidth width GameStateManagementGame Gra
  • 用 C++ 中的字符串索引的整数[重复]

    这个问题在这里已经有答案了 可能的重复 在 C 数组中为什么会这样 a 5 5 a 这怎么可能是有效的 C void main int x 1 WTF 在 VC 10 上编译并在调试模式下的值x语句后为 84 这是怎么回事 数组下标运算符是
  • 如何安全连接到部署到 Vercel(无服务器)的 Next.js 应用程序(使用 Prisma 和 MySQL)中的数据库

    我在 DigitalOcean 上的 MySQL 数据库被锁定 只能通过本地连接访问 我强烈希望像这样保持它的安全 即不要打开它 我习惯使用 SSH 隧道来连接它 例如ssh L 3306 localhost 3306 i ssh id r
  • PHP SoapClient 发送自定义 XML

    我正在尝试使用 PHP 中的soapClient 类发出 SOAP 请求 这是我的代码 xmlstr lt lt
  • 使用pmap函数检查一行中的所有值是正数还是负数

    我有这个数据框 我只想使用pmap函数仅过滤所有值为负或正的行 我正在寻找一种简洁的方法来做到这一点 正如我所想的那样c 但我们只能在函数内部使用它 可以通过这段代码实现 df lt tibble x c a b c y c 1 1 1 z
  • 抽屉式导航栏 - Gmail 应用程序等部分之间的分隔线

    我正在更新我的应用程序中的导航抽屉 我想像 Gmail 应用程序那样添加分区分隔符 我如何添加它们 只需将它们添加为视图即可 这是一种简单的方法 但是 我想知道 这是正确的方法吗 Gmail 应用程序 现在 我正在使用带有标题视图的列表视图
  • 为什么计算机在汇编语言中使用十六进制数字系统?

    为什么计算机在汇编语言中使用十六进制数字系统 他们为什么不使用任何其他数字系统 如二进制 八进制 十进制 是什么迫使计算机设计者在组装时使用十六进制系统 为什么它看起来对他们如此有利 计算机不使用十六进制 计算机中没有任何组件处理十六进制值