2015-08-14 75 views
0

我沒有編程教育,我自己學了。但是我在互聯網上找不到的是旗幟和麪具之間的區別。術語:什麼是面具和什麼是國旗

我明白位運算符的邏輯,我只是​​不理解術語。

即:

int READ_BIT_POSITION = 0x1; // is this a mask? 
int WRITE_BIT_POSITION = 0x2; // is this a mask? 
int bits = //..// // is this a flag (or flags)? 

int read = bits & READ_BIT_POSITION; // or is this a flag? 

Sry基因這個小白qeustion。

+1

掩碼用於讀取或修改字或位字段中的位(通常但不是唯一的,當各個位本身被認爲是標誌時) –

回答

2

一個標誌通常是一個單詞中的單個位。

掩碼通常是一個或多個位,用於刪除單詞中的其他位。

可能有一些重疊,例如,在某些情況下,單個位可以用作標誌或掩碼。但是,具有多個位集的掩碼不能被描述爲標記。

在您的例子:

int read = bits & READ_BIT_POSITION; 

READ_BIT_POSITION被用作一個單個位掩模這將導致read含有1個比特標誌bits萃取(和排除任何其他的位,它可能包含)。

1

掩碼定義了您感興趣(或不感興趣)的值中的位。一個標誌是代表SOMETHING的那個值中的一個或多個位。

您使用掩碼來讀取/寫入標誌值。例如如果您在牆上繪畫,面具是用來標記角色走向的紙模板,而標誌則是您想要在牆上繪製的確切角色。

+0

標誌總是一位,通常表示某種情況。 – starblue