-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