[英]opposite of enum (using formula) (objective-c)
我有4個數字0-3,這是一個枚舉(objective-c),我想使用公式來得出相反的結論。 因此,如果將0放入公式中,則返回2;如果輸入2,則返回0(與1和3相同)。
原因是(與編程相關)我想得到枚舉的對立而不必執行if或switch語句。 但這意味着任何公式(如果可能)都必須不復雜,因此它比使用if或switch更有效。
公式很簡單:
n = n ^ 2;
0-3的位值以及如何對其進行異或運算:
n ^10
---------------
0 = 00 : 10 = 2
1 = 01 : 11 = 3
2 = 10 : 00 = 0
3 = 11 : 01 = 1
測試(用C#編寫):
for (int n = 0; n <= 3; n++) {
Console.WriteLine("{0} : {1}", n, n ^ 2);
}
輸出:
0 : 2
1 : 3
2 : 0
3 : 1
int newValue = 3 - originalValue;
也許轉換為您的枚舉類型。
編輯:抱歉,這交換0 <=> 3和1 <=> 2,我認為這是相反的意思。
對於0 <=> 2和1 <=> 3,您可以使用
int newValue = (originalValue + 2) % 4;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.