我无法理解这种加密字符串中字符的简单方法。所以这是方法:
encryptedChar = (char) (’A’ + (originalChar -’A’ + offset) % 26);
我不理解'A' - 'A'
的必要性,因为它们只是取消了。它背后的原因是什么?
为什么我不应该只使用以下方法?
encryptedChar = (char) ((originalChar + offset) % 26);
不应该完全一样吗?
答案 0 :(得分:2)
encryptedChar = (char) ('A' + (originalChar -'A' + offset) % 26);
两个'A'不会相互抵消,因为第二个'A'在表达式内部,即模数运算符的操作数。
'A' + (originalChar -'A' + offset) % 26
- 此处每个字母都会映射到不同的字母。
((originalChar + offset) % 26)
- 此处每个字母都映射到一个int值介于0到25之间的字符。