我目前正在實現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