-2
在考慮上溢和下溢的同時在C++中遞增/遞減字節的最佳方法是什麼?例如,我有:在C++中增加/減少字節(字符)與上溢/下溢
char c = random byte;
c += 0xB;
在情況c < = 0xF4中,這將很好地工作,但上述的任何值將導致溢出。同樣,如果它是c - = 0xB;並且0xB,則會發生下溢。
比方說c = 0xFF,加法之後,它會是0xA嗎?同樣在下溢時,如果c = 0,結果是0xF5嗎?
此外,對於一些奇怪的原因,當我增加特定數字時,會出現奇怪的結果。例如,如果我通過增加的0xA爲0x0,使用的代碼:
c = (c + 0xA) & 0xFF;
結果是:0X0D的0x0A而不是僅僅的0x0A ...只是,如下圖所示:
雖然所有其餘的字節正確增加。
我不能發現一個單一的增量或減量操作。 – 2015-02-09 16:51:53
我不確定我是否使用了正確的詞來描述操作,因爲我不是母語的人,但這就是我的意思,增量:c =(c + 0xA)。我也編輯了代碼,因爲我忘了適當地更改代碼中使用的變量。 @πάνταῥεῖ – 2015-02-09 16:52:49
你是否試圖使用它來進行加密?也許你想用[exclusive或](http://en.wikipedia.org/wiki/XOR_cipher)代替。 – 2015-02-09 16:54:43