江湖救急,什么是模2和 ,在线等,完成就结帐.

liu9527 2006-02-16 04:15:42
问题:对一段内容进行传送,在最后一个字节为前边内容的模2和,请问最后一个字节的内容是如何得到的,也就是模2和的算法.
...全文
630 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu9527 2006-02-22
  • 打赏
  • 举报
回复
请大家再看一下
liu9527 2006-02-22
  • 打赏
  • 举报
回复
谢谢 keiy()
马上结贴
柯本 2006-02-22
  • 打赏
  • 举报
回复
程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var
b:array of byte;
br:byte;
i:integer;
r:integer;
begin
setlength(b,7);
b[0]:=$eb;
b[1]:=$90;
b[2]:=$83;
b[3]:=$06;
b[4]:=$05;
b[5]:=$ff;
b[6]:=$38;
br:=b[0];
for i:=1 to 6 do
br:=br+b[i];
br:=not br;
br:=br+1;
Edit1.Text:=inttohex(br,2);
end;
结果为c0
柯本 2006-02-22
  • 打赏
  • 举报
回复
我是用按位+(而非xor)而得的结果(以字节计算)
liu9527 2006-02-21
  • 打赏
  • 举报
回复
对于Keiy()
可能是将字节相加的结果再取反+1
(以下都是对字节计算)
1.EB+90+84 = ff 取反 +1 = 01
2.EB+90+83+06+05+ff+38=40 取反+1 = c0

你说的+是不是xor(异和),还是什么
如是xor,如下写,
var
b:array of byte;
br:byte;
i:integer;
r:integer;
begin
setlength(b,7);
b[0]:=$eb;
b[1]:=$90;
b[2]:=$83;
b[3]:=$06;
b[4]:=$05;
b[5]:=$ff;
b[6]:=$38;
br:=b[0];
for i:=low(b)+1 to high(b) do
br:=br xor b[i];
//br最后得到为3c ,不是40
// br:=Lo(i);
//br:=$40;
br:=not br;
br:=br+1;
edit1.text:=format('%X',
);

zhangshihua11 2006-02-21
  • 打赏
  • 举报
回复
好像计算机组成原理上有
自己去找找看
不记得怎么回事了
liu9527 2006-02-21
  • 打赏
  • 举报
回复
ifPyh:

但是我不能得到正确的结果,也就是说根据我上面写的得到校验码不符合结果

如:EB,90,83,06,05,ff,38 我计算的值是(3c 而后3c取反+1, )和 最后的校验码(c0)不相同,怎么回事?
也就是不知道
keiy() ( ) 的
2.EB+90+83+06+05+ff+38=40 取反+1 = c0 是怎么得来的


lfpyh 2006-02-21
  • 打赏
  • 举报
回复
liu9527(小刀)说的是正确的,“模二和”就是对数据进行异或运算,这是一种最简单的数据校验方式,很常见的。
柯本 2006-02-20
  • 打赏
  • 举报
回复
可能是将字节相加的结果再取反+1
(以下都是对字节计算)
1.EB+90+84 = ff 取反 +1 = 01
2.EB+90+83+06+05+ff+38=40 取反+1 = c0
liu9527 2006-02-20
  • 打赏
  • 举报
回复
对于keity()
你所说的就是xor运算,
例如有以下数据:EB,90,84 最后的校验码为01 ,均为十六进制,
又如:EB,90,83,06,05,ff,38 最后的校验码为c0
请大家看看算法
柯本 2006-02-16
  • 打赏
  • 举报
回复
可能就是按位加吧:
0+0=0
0+1=1
1+1=0

其中+就为模2和
cuteant 2006-02-16
  • 打赏
  • 举报
回复
校验和?
constantine 2006-02-16
  • 打赏
  • 举报
回复
前面每个字节求模,然后全部加起来??

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧