有一字符串String s="%01#RDD0110501107"
要让字符串中每个字符转换成16进制然后异或求和,
我将字符串转化成16进制后再异或求和结果总是不对求教,
这字符串每个字符对应的16进制应该是:
25 30 31 23 52 44 44 30 31 31 30 35 30 31 31 30 37
逐位异或
25^30^31.....最后异或的结果不正确,我想问下那字符串 转换成 16进制
如 %对应的是25 我是不是不能直接用25异或?
具体的,是看你想要的计算方法和结果的。是想逐个字符的ASCII异或,还是字符的ASCII的十六进制里面两个数字异或、再加起来
16进制和10进制,只能在“25"和“37”(前面16进制、后面10进制)里面,才会有差别,如果是
0x25和37是相等的数。
是 将各个字符的16进制进行异或求和
比如“%01#RCSX0000” 这个将各个字符的16进制进行异或求和后是1D
我算半天也不是这数
再说一次,16进制和十进制,在数字里面是相等,别强调16进制,让人误会 是十六进制的字符串。
或者,你讲清楚具体的要求。
上图
sum=0
sum = sum ^ (byte)s.charAt(i);
图片中的数据, 最后sum转成16进制,是1D