2011-06-02 290 views
3

我在不同的体系结构上提供32位或64位寄存器,以及如何在低级别运行。然而,有一件事一直困扰着我......无论你是32位还是64位的特定术语。例如:什么是适合32位和64位“32位”的术语

 
string XXX;

if(architecture == i386) XXX = "32"; else if(architecture == x86_64) XXX = "64";

... go on to use variable XXX ...

So, what would I name my variable? Not architecture. Not "bits". Not "bus width" or "register width" (that would seem quite out of place I think)

So what would this variable be named and what would someone say in conversation?

回答

2

I'd call it wordSize = "xx", I'd say 'word size'.

+0

我认为这也许是正确的,但与16位的冲突被广泛认为是x86体系结构的字大小。例如在x86-64上,一个64位寄存器操作实际上是用“pushq”完成的,q表示四字(16 * 4 = 64)。只是因为x86很荒谬并不意味着你错了,但它是一个东西IMO – Nektarios 2011-06-02 13:21:20

+0

@Nektarios哈哈你肯定比我更了解这件事。我认为这个问题有多个正确的答案。 – 2011-06-02 13:25:13

3

I thought of "pointer size", since the first relevant thing about 32-bit vs 64-bit is how much memory the application/OS can address.

But pretty much any such terminology is going to diverge from what you would say in conversation, since everybody mostly says "32-bit" and "64-bit" (and sometimes "x86" and "x64").

How about just architectureBitLength

+1

我认为你钉了对话的一部分,它只会是“是的,代码是32位”或“该驱动程序被搞砸了64位”,虽然我只是觉得这样的白痴说这些事情,因为“64位“实际上是一个形容词,而且它是一个名词。我不是语法警察或其他什么,意思是(可能)理解,但它仍然是愚蠢的 – Nektarios 2011-06-02 13:45:49

+1

我不认为它成为一个名词。这是隐含的(在说和理解中)“xx-bit”仍然是一个形容词,因为当你说这样的东西时,有一个隐含的名词用于上下文:“该驱动程序被搞砸了64位[操作系统]”; “你应该改为安装[我们正在谈论的32位版本]”。丢弃冗余上下文始终发生。可能试着问English.SE或Programmers.SE(或迁移这个)? – 2011-06-02 13:58:51

-1

Bitness是我的首选术语。

1

This Wikipedia page提示“字的大小”,但也带来了术语“地址大小”,这个术语溢出到地址空间中。
不幸的是,许多系统使用术语“单词”来表示“16位数据值”,这使混淆事物。
this page的第1段似乎确实确认了user686605的位置:“字大小”。

0

我倾向于使用术语“位宽”。我知道这不是字面意思,但人们似乎更容易理解。