0
如何將位置信息存儲在位域中(域的順序是OR或否)?依賴於順序的位域
背景:昨天晚上寫了我的遊戲引擎的一部分,它突然進入我的腦海。假設我們試圖描述一種顏色,並且作爲描述符(和它們的順序)中存在的顏色的一部分。例如,我們今天對大多數顯卡下列顏色命令:
RGBA
BGRA
以下標誌可以用來描述所支持的顏色:
None = 0x0
A = 0x1
R = 0x2
G = 0x4
B = 0x8
但是,通過使用這些字段A | R | G | B
是與B | G | R | A
一樣。您將如何設計可用於添加位置依賴性的標誌和/或操作?用於增加排他性的獎勵標記(例如,您不能在位置1處具有R
和G
)和實用程序(可能在此情況下可能使用某種巧妙方式)。
我並沒有考慮實際做到這一點,我只是覺得它很有趣。請不要評論「過早優化」。 –
如果你想編碼*命令*,恕我直言的最自然的事情就是枚舉排列,並使用該編號。最自然的枚舉將是一個混合基數的東西(可能與Yates混洗) – wildplasser
@wildplasser所以我假設你的意思是(A * 2^0)XOR(R * 3^1)XOR( G * 4^2)XOR(B * 5^3)'? –