我目前正在实现RC4解密,并且由于此算法仅对0-255之间的数字进行操作,因此我希望尽可能使用安全代码并正确使用unsigned char
变量而不是简单的int
。那么,这虽然面临着一种情况,但我不能预料会发生什么。使用无符号字符算术
给出的是3瓦尔i
,j
,k
:
unsigned char i = 150;
unsigned char j = 155;
unsigned char k = 0;
会表达k = (i + j) % 256
正确设置k
到49
或255
为i+j
被截断?
编辑:固定的“J”被拼写为“K”
'i + k'是150,你错误地输入了哪个变量? –
这里有*没有序列*你可以在这里做的产生50.无符号字符的算术是mod 256,而不是mod255. – nneonneo
更好地使用'uint8_t'或者你特别定义的类型来保存8位。 'unsigned char'在某些机器上包含8位以上(例如TMS320C28xx上的16位)。 – starblue