sum := 0;
str := '$PGRMIX';
for i := 2 to length(str) do//这里length(str)是否为7?
begin
sum := sum xor byte(str[i]);//0 xor 80 是不是把他们化话二进制?就是00000000 xor 10000000 = 10000000 sum=80?
end;
str := str+ '*' + inttohex(sum, 2) + #13#10;//str=$PGRMIX*50后面#13#10什么意思 怎么加
str := '$PGRMIX';
for i := 2 to length(str) do//这里length(str)是否为7?
begin
sum := sum xor byte(str[i]);//0 xor 80 是不是把他们化话二进制?就是00000000 xor 10000000 = 10000000 sum=80?
end;
str := str+ '*' + inttohex(sum, 2) + #13#10;//str=$PGRMIX*50后面#13#10什么意思 怎么加
str := '$PGRMIX';
for i := 2 to length(str) do //这里length(str)是否为7?
begin
sum := sum xor byte(str[i]);
end;
str := str+ '*' + inttohex(sum, 2) + #13#10;//str=$PGRMIX*50后面#13#10什么意思 怎么加//这里length(str)是否为7?
是的。//0 xor 80 是不是把他们化话二进制?就是00000000 xor 10000000 = 10000000
是的。
sum=80?
不是。sum = str[2] xor str[3] xor ... str[length(str)];//str=$PGRMIX*50后面#13#10什么意思 怎么加
inttohex(sum, 2)是将sum值转换成二位的十六进制字符串
#13是ASCII码为13的字符(即回车符)
#10是ASCII码为10的字符(即换行符)