【发布时间】:2017-07-20 19:43:33
【问题描述】:
在 Quora HERE 上查看这个问题(“数据是存储在寄存器和内存中的十六进制还是二进制?”),我认为最佳答案是说数据持久性是通过硬件的物理特性实现的,而不是直接与二进制或十六进制相关。
我一直认为计算机是“二进制”的,但刚刚意识到这仅适用于组件(磁性上/下或开/关晶体管)的使用,而不一定适用于组织,例如,内存内容。
即从理论上讲,您可以在内存中创建一个使用“二进制组件”但不是二进制的抽象,如下所示:
100000110001010001100
100001001001010010010
111101111101010100001
100101000001010010010
100100111001010101100
然后将其识别为 'hello' 的(画得很差的)图像,而不是 'hello' 的 ASCII 编码。
关于 SO (What's the difference between a word and byte?) 的答案提到处理器可以处理“单词”,即一次处理几个字节,因此虽然信息表示必须是二进制的,但我不明白为什么必须进行信息处理。
计算机可以直接对十六进制进行算术运算吗?在这种情况下,内存/寄存器中信息的内部表示是二进制还是十六进制?
【问题讨论】:
-
嗯,你会调用 8 位寄存器操作,比如二进制补码整数否定或算术左移,256 进制还是你也调用二进制?
-
@TomBlodget 我没有 CS 背景,否则我想这种类型的东西(低级计算机功能)会在我的大学时代涵盖。所以我实际上不知道你的意思......
-
但是是的。实际上。术语“8 位寄存器操作”回答了我的问题。我想知道是否每个操作都在单个位级别完成
-
不,有些使用 0 位(取决于您如何定义操作)Ex. [RET instruction],有些 1 [JNE instruction 使用标志],大多数使用整个或部分寄存器或内存获取值Ex. [ADD instruction] 所寻址的任意大小(通常为 8 位的倍数)。