如果兩者都給出相同的結果,我應該更喜歡+
(加法)運算符還是|
(或)運算符?如果兩者都能得到相同的結果,我應該選擇加法還是邏輯OR運算符?
我知道添加和邏輯或是不同的東西。但是他們有時會在一些宏中執行相同的操作,特別是在使用字節和位進行播放時。在這種情況下,我應該選擇哪一個?
實施例:
uint8_t Byte1 = 0x02; // 0000 0010
uint8_t Byte2 = 0x80; // 1000 0000
uint16_t Word1, Word2; // 0000 0010 1000 0000 = 640 = 0x0280
Word1 = (Byte1 << 8) + Byte2;
Word2 = (Byte1 << 8) | Byte2;
std::cout << "Word1 = " << Word1 << std::endl;
std::cout << "Word2 = " << Word2 << std::endl;
輸出:
字1 = 640
字2 = 640
這是一個棘手的問題,因爲在可讀性方面都不是明顯的贏家。 – Mysticial
你應該更喜歡什麼?性能?那麼,位操作稍微快一點,但我不認爲你會注意到這一點。可讀性?我認爲他們都很清楚,但這取決於他們的意圖。 –
@Adriano我見過這個問題的唯一地方是SSE,其中邏輯指令具有3個IPC吞吐量,而只有2個IPC用於添加。 (在目前的英特爾處理器上) – Mysticial