2010-07-18 102 views
7

在C語言和嵌入式中,經常使用枚舉常量,其中每個值都是具有1位設置的位掩碼。 (例如,0x0001,0x0002,0x0004等)這種類型的位掩碼是否有標準名稱?我已經看到它們被稱爲標誌,但更多的是作爲標準定義。我知道這聽起來似乎勢利,但「旗幟」似乎並不足夠技術?其他人是否有這些好名字?我無法想象沒有人拿出一個。設置1位位掩碼的名稱

+1

國旗似乎對我來說足夠合理 - 「兩個冪」並沒有真正解釋太多,國旗至少比這更好。 – 2010-07-18 00:31:36

+0

@ Will A - 其實,這是我的主要觀點。如果你使用兩個冪,你的「標誌」是完全獨立的。你可以或者,和而不是他們,只是改變/檢查你感興趣的一兩個而不改變其他人。 – ktrimbach 2010-07-18 20:21:19

回答

10

「標誌」是公認的術語。 「傳遞標誌」,「設置此標誌」等。

+0

Flags的維基百科條目如下: flag指用於存儲二進制值*或代碼*的一個或多個*位。這正是我想要的東西不那麼通用的原因。 – ktrimbach 2010-07-18 20:23:08

+2

你不能總是得到你想要的東西。 「標誌」是此功能的標準術語。 – 2010-07-18 20:24:31

+0

@ktrimbach,標誌詞的維基百科條目表明該名稱強烈暗示了單個位到單個標誌的直接映射。我從來沒有聽說過用來表示多位的術語。 – MSN 2010-07-19 04:56:20

2

.NET框架有一個Flags屬性,用於準確指示您正在描述的行爲。

他們並不完全只是爲了他們想要的任何名字,所以標誌可能是最可接受的術語。

+0

這是一個很好的參考。 .NET確實爲枚舉定義了FlagAttribute,而MSDN確實描述了這種類型。除了允許ToString()將多個枚舉連接在一起之外,我不確定它有什麼好處,但它是說明性的。 – ktrimbach 2010-07-18 20:54:08

2

我也看到「位標誌」。

+0

我發現了一篇Dr Dobbs的文章,提到了「位標誌枚舉」。這有點('scuse雙關語)更接近我的想法。 http://www.drdobbs.com/184403893 – ktrimbach 2010-07-18 20:15:58

5

「旗」已用於這些幾十年,現在就好了。我的老C64已經有了一個零標誌,進位標誌等,在這裏看到進一步的信息:

http://en.wikipedia.org/wiki/Flag_(computing%29

http://en.wikipedia.org/wiki/Status_register

我不知道什麼時候這個詞被創造出來,由誰來。

+0

維基百科鏈接專門討論狀態寄存器和標誌字。這些是硬件位標誌。這可能是它的來源,但我正在尋找更多的東西。 – ktrimbach 2010-07-18 20:04:12

+0

@ktrimbach:第一個鏈接(我編輯了我的帖子,所以現在它工作)也說:'在其他情況下,二進制值可能代表位字段中的一個或多個屬性,通常與能力或權限有關,例如「可以寫入」或「可以刪除」。「 – Secure 2010-07-18 22:18:53

1

在數學中,一個單元集是一個只有一個元素的集合,所以你可以想象稱它們爲單例位集或單例位掩碼,但在實踐中我沒有看到。

+0

回答錯誤的問題? – Joshua 2010-07-18 22:37:21

+0

@Joshua,不知道你指的是什麼。 – ergosys 2010-07-18 23:02:32

+0

該值沒有設置一個位,組合值列表每個都設置一個位。 – Joshua 2010-07-19 02:42:21