2014-10-10 51 views
0

我經過一些簡單的代碼,以幫助我的按位代碼邏輯使能(我第一次這樣做)按位邏輯知道什麼是從服務器

基本上我有每3個物業,1,2的ID ,4

int A = 1 
int B = 2 
int C = 4 

可以說A和C被檢查,這將等於5,這個值將被保存到數據庫中。好。

現在我需要在返回檢查值的基礎上開展工作。

所以在這個例子中,值是5,那麼我怎麼知道按位邏輯是什麼屬性被檢查?

所以我不要求你做我的工作,知道我做什麼,

int i = A & C; 
// if i == 5, then we know it was A and C checked 

但你需要做的是爲每個可能性?話雖

i & A != 0 // true if A is set in i 
i & B != 0 // true if B is set in i 

的是,位域在很多情況下,不恰當的:

由於提前

+1

你正在描述非常_exactly_枚舉標誌應該做什麼:http://geekswithblogs.net/BlackRabbitCoder/archive/2010/07/22/c-fundamentals-combining-enum-values-with- bit-flags.aspx – 2014-10-10 11:11:12

+0

或者只使用位移位和按位AND來測試位。 – RenniePet 2014-10-10 11:12:07

+0

我知道,我同意,但是,我選擇不使用枚舉,因爲在視圖上渲染枚舉看起來很凌亂,但是你;對了 – user3428422 2014-10-10 11:12:24

回答

2

你可以簡單地檢查這些條件。特別是當您將結果值存儲到數據庫中時,通常最好定義一些存儲每個標誌的列。

+0

這就是我將如何做,並同意,但是,因爲問題說,我是新的按位邏輯(在編程意義上),因爲我只處理3個值(1,2,4)認爲這將是一個開始的好時機!謝謝你會告訴我什麼時候讓我 – user3428422 2014-10-10 11:21:10