按十進位制位與運算

2021-07-08 10:33:11 字數 786 閱讀 6543

需求:所有包含5級裝備的獎勵,需要通關10234567後才能領取。

遊戲的id規則如下:

長度:8位十進位制數,如12345678

前2位表示id型別,比如10表示關卡id,11表示裝備id,12表示物品id;

其中對於乙個裝備id:11234

5672表示品質;

34表示部位;

567表示等級;

方法1:對程式設計師來說最簡單的是,讓遊戲策劃把所有5級裝備都配置在**裡,他們的解鎖關卡都是10234567;

缺點

僅這一條限制,策劃最多需要填寫999999條記錄,這樣對於程式來說查詢效能,記憶體占用都是乙個問題;

策劃只需要填寫一條記錄:id=

11000005,關卡id=

10234567

對於不懂程式的從業人員來說,按十進位制位填寫模式匹配模版是乙個很容易理解的方法。

查詢排序的比較函式**如下:

//遞迴呼叫,先高位,後低位

//按十進位制位比較,若為0,則忽略當前位,

static inline int decimalbitcompare(uint32_t dwa, uint32_t dwb)

return 0;

}//比較高位

int ihighresult = decimalbitcompare(dwa/10, dwb/10);

if(ihighresult == 0)

return ihighresult;

}

十進位制轉十六進製制(巧用位運算)

十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推,十進位制...

理解位運算轉化十進位製到二進位制

1 右移。如果乙個二進位制數右移1位,則最右邊的那一位,也就是最後一位就會被丟掉,但是同時倒數第二位就會變成最後一位。以此類推,右移2位 3位,可以理解為二進位制數的倒數第3位,倒數第4位被移到了末位。例如,我們在對十進位制5進行 時,即 5 3 時,我們可把5看為 0101 即位運算為 0101 ...

二進位制與十進位制

人們在生產實踐和日常生活中創造了多種表示數的方法,這些數的表示規則稱為數制。例如人們常用的十進位制 計算機中採用的二進位制等。十進位制計數法的加法規則是 逢十進一 任意乙個十進位制可用0 1 2 3 4 5 6 7 8 9十個字元的組合表示,它的基數是 10。二進位制計數法的加法規則是 逢二進一 任...