原理
将一个char类型与一个整数相加,实际上是该字符的 ASCII 值与这个整数相加。
在计算机中,字符是以 ASCII 码的形式存储和处理的,因此对字符进行数学运算会涉及到 ASCII 码值的加减。
举个例子:
假设有一个字符 'A',它的 ASCII 码值为 65。当你执行 (char)('A' + 1) 时,实际上是将字符 'A' 的 ASCII 码值 65 与整数 1 相加,得到结果 66,然后将结果转换为对应的字符,也就是 'B'。
因此,表达式 (char)(c + 1) 中的 (c + 1) 实际上是将字符 c 的 ASCII 码值加一,并将结果转换为对应的字符。
private string originalText = "Hello, World!";
private string encryptedText;
void Start()
{
// 加密数据
encryptedText = Encrypt(originalText);
Debug.Log("加密后的数据:" + encryptedText);
// 解密数据
string decryptedText = Decrypt(encryptedText);
Debug.Log("解密后的数据:" + decryptedText);
}
private string Encrypt(string text)
{
string encrypted = "";
foreach (char c in text)
{
encrypted += (char)(c + 1); // 简单的替换算法,每个字符向后移动一位
}
return encrypted;
}
private string Decrypt(string text)
{
string decrypted = "";
foreach (char c in text)
{
decrypted += (char)(c - 1); // 解密操作,每个字符向前移动一位
}
return decrypted;
}