异或的符号是^。按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0.

xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。xor运算可以用于简单的加密,比如我想对我MM说1314520,但怕别人知道,于是双方约定拿我的生日19880516作为密钥。1314520 xor 19880516 = 20665500,我就把20665500告诉MM。MM再次计算20665500 xor 19880516的值,得到1314520,于是她就明白了我的企图。 相同位不同则为1,相同则为0。 00101 11100 (^或者xor) ---------------- 异或的符号是^。按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0.xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。xor运算可以用于简单的加密,比如我想对我MM说1314520,但怕别人知道,于是双方约定拿我的生日19880516作为密钥。1314520 ...
异或,英文为exclusive OR,或缩写成xor 异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为: a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。 异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则
for i = 1, #text do local char = string.sub(text, i, i) local keychar = string.sub(key, (i - 1) % #key + 1, (i - 1) % #key + 1) local xorchar = string.char(string.byte(char) ~ string.byte(keychar)) result = result .. xorchar return result -- 解密函数 function decrypt(text, key) return encrypt(text, key) -- 测试 print("请输入要加密的文本:") local text = io.read() print("请输入密钥字符:") local key = io.read() local encrypted = encrypt(text, key) print("加密后的文本为:" .. encrypted) local decrypted = decrypt(encrypted, key) print("解密后的文本为:" .. decrypted) 对于输入的文本和密钥字符,程序会输出加密后的 字符串 和解密后的 字符串 。注意,这个程序只能加密和解密 ASCII 字符集中的字符。