字符串或字符数组进行异或操作
js方法:
注:str.charCodeAt(); //进行字符转码非常重要,比如‘3’对应的ASCII值为‘51’,不进行转码即对字符‘3’等进行异或操作,为了两种结果一致,进行稍稍修改即可。
var str = '37050004692007230001123'
console.log(getXORData(str.split('')));
//获取字符串或者数组异或结果
function getXORData(param){
//如果参数是字符串类型就转换位字符数组类型
if(typeof param=='string'){
param = param.split('');
}
let temp=param[0].charCodeAt(); //字符转码
for(let i = 1; i < param.length; i++) {
temp ^= param[i].charCodeAt();
}
return temp;
}
某语言方法:
public static byte getXorData(byte[] data){
byte temp=data[0];
for(int i=1;i<data.length;i++){
temp^=data[i];
}
return temp;
}
public static void main(String[] args) {
String a = "37050004692007230001123";
byte[] bytes = a.getBytes();
byte b = getXorData(bytes);
System.out.println(b);
}