确认下,该如何解决

确认下
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什么意思   怎么加

------解决方案--------------------
sum := 0;
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的字符(即换行符)