我做了一些研究.一个字节是8位,一个字是可以在内存中寻址的最小单元.单词的确切长度会有所不同.我不明白的是有一个字节是什么意思?为什么不说8位?
我问过这个问题的教授,他说这些天大多数机器都是字节可寻址的,但这会产生什么结果呢?
stdint.h和之间有什么区别cstdint?
它们都可以在MSVC(Visual Studio 2010)和gcc-4.5.1中使用.还定义了intX_t/ uintX_ttypes(其中X是类型的字节大小).
在stdint.h定义了每个类型没有任何名称空间,该cstdint类型在于std命名空间.
std命名空间中包含或不包含已定义的类型?这两个标题有什么不同?cstdint没有文件扩展名并使用c前缀,stdint.h使用.h扩展名.
c前缀表示这是一个C库?缺少文件扩展的原因是cstdint什么?这个问题:一个字在32/64位操作系统中分别包含多少位?提到字长是指处理器寄存器的位长-我指的是计算机处理器操作的位数,即处理器操作的最小“不可分割”位数。
那是对的吗?使用Word / Excel / etc等软件,安装程序可以选择32位或64位安装。有什么不同?
由于计算机体系结构是固定的,因此在我看来,“ 32位”软件将被设计为与具有32位体系结构的计算机体系结构保持一致。64位程序将努力使指令集与64位字长对齐。
那是对的吗?
这里提出了一个非常类似的问题:从编程的角度来看,当程序是32位或64位时,这意味着什么?-并且接受的答案提到差异是可以分配给应用程序的内存量。但这太含糊-除非32位/ 64位软件的概念与32位/ 64位字处理器的大小完全无关?
当我打破主要时,它看起来像粗线是我正在创建和初始化的地方.我想我错了,我正试图从一本解释x86的书中检查x86_64程序集.这看起来很奇怪,我很确定我只是不明白,因为在本书中他说他会将单词和双字称为4字节.如果我能得到一个解释来帮助我的认知,我将不胜感激.
__CODE__方法:http://ruby-doc.org/core-2.0.0/Enumerable.html#method-i-inject
我目前正在寻找上述问题的答案。到目前为止,我发现有人说,字长是指处理器寄存器的大小,这表明在 64 位机器上,字长为 64 位,因此 QWORD(4 * 字)的大小为 256 位。
但在另一方面,我发现像源此说的大小将是128个比特(64个比特为32位和加倍此对64位),而即使这样其他建议的大小将是64个比特。但最后一个与 Microsoft 有某种关系,它通过将单词的大小定义为 16 位来混淆每个人,从而使情况变得更糟。
也许有人可以解决我的困惑并在这个主题上启发我。
如果
8位是一个字节
两个字节是一个单词
四个字节是双字节
8个字节是一个qword
什么是16字节的好名字?