Memory 寄存器/内存中存储的信息是否为二进制结构?

Memory 寄存器/内存中存储的信息是否为二进制结构?,memory,binary,hex,Memory,Binary,Hex,看看Quora上的这个问题(“寄存器和内存中的数据是十六进制还是二进制的?”),我认为最重要的答案是,数据持久性是通过硬件的物理属性实现的,与二进制或十六进制都不直接相关 我一直认为计算机是“二进制”的,但我刚刚意识到这只适用于组件(磁性上/下或开关晶体管)的使用,而不一定适用于内存内容的组织 i、 e.理论上,你可以在内存中创建一个使用“二进制组件”的抽象,但它不是二进制的,比如: 100000110001010001100 100001001001010010010 111101111101

看看Quora上的这个问题(“寄存器和内存中的数据是十六进制还是二进制的?”),我认为最重要的答案是,数据持久性是通过硬件的物理属性实现的,与二进制或十六进制都不直接相关

我一直认为计算机是“二进制”的,但我刚刚意识到这只适用于组件(磁性上/下或开关晶体管)的使用,而不一定适用于内存内容的组织

i、 e.理论上,你可以在内存中创建一个使用“二进制组件”的抽象,但它不是二进制的,比如:

100000110001010001100
100001001001010010010
111101111101010100001
100101000001010010010
100100111001010101100
然后将其识别为“hello”的(绘制不好的)图像,而不是“hello”的ASCII编码

关于SO()的一个回答提到处理器可以处理“字”,即一次处理几个字节,所以虽然信息表示必须是二进制的,但我不明白为什么信息处理必须是二进制的

计算机能直接在十六进制上做算术吗?在这种情况下,内存/寄存器中信息的内部表示形式是二进制还是十六进制?

也许“数字计算机”是一个很好的起始术语,然后是“二进制数字”(“位”)。在电子方面,数值的术语有时是“高”和“低”。你说得对,那之后的一切都取决于手术。大多数情况下,一组位一起操作。通常组为1、8、16、32和64位。位的意义取决于程序,但某些操作与某种意义水平密切相关

当一组比特的含义未知或不重要时,人类喜欢能够计算每个比特的值。可以使用二进制文件,但超过8位的文件很难读取。虽然很少对4位的组进行操作,但十六进制的可读性要高得多,并且通常不考虑位数。有时使用八进制,但这是基于上下文,其中3位的子群有一些意义,或者避免9位以上的数字

整数可以以2的补码格式存储,并且CPU通常有用于此类整数的指令。一旦这样的操作是否定的。对于一组8位,它将映射1到-1、-127到-127、-1到1、-127到127、0到0、-128到-128。在这里,十进制可能对人类最有价值,而不是以256为基数、以2为基数或以16为基数。在无符号十六进制中,是01到FF,…,00到00,80到80

有关CPU如何对一组位执行整数加法的介绍,请参阅

其他数字格式包括IEEE-754浮点和二进制编码十进制


我想你知道数字电路是二进制的。因此,基于上述情况,是的,尽管存在实际存储,但操作确实在更高的概念级别上运行

嗯,你会称之为8位寄存器运算,比如2的补码整数求反或算术左移位,256进制,还是也称之为二进制?@TomBlodget我没有CS背景,否则我猜这种类型的东西(低级计算机功能)在我上大学的时候就已经被涵盖了。所以我不知道你是什么意思…但是是的。事实上术语“8位寄存器操作”回答了我的问题。我想知道是否每个操作都是在一个位级别上完成的否,有些使用0位(取决于您如何定义操作)],有些1使用标志],大多数使用寄存器或内存提取值的全部或部分]地址大小(通常是8位的倍数)。谢谢。这是一个有用的链接。看看这句话:'我们要构造执行二进制加法的组合逻辑电路'我假设每个电路本身都是二进制的,对吗?因为电是开或关的(只能携带一个二进制数字)。。。但同样,理论上,电路可以设计为进行十六进制加法,但单个步骤仍然是二进制的。这会让人困惑……这里的关键CS概念是合成和迭代。为了简化硬件,数字是二进制的。为了保证非整数的精度,有时将其组成二进制编码的十进制。十六进制没有这样的动机。这是一种简单方便的显示位的方法,特别是当分组为4s或8s等时。