假设使用internet校验和(4位字)发送消息1001110010100011,校验和是什么

2024-12-29 01:58:47
推荐回答(1个)
回答1:

#include "stdio.h" 

void main() 


int i; 

//任意10个数值,也可以不是8位 

unsigned char data[10]={0x12,0x21,0x1A,0xB1,0xC1,0xEB,0xDF,0xCA,0xF6,0xDD}; 

unsigned char out;//用于保存异或结果 

printf("原来的校验值:%X\n",out); 

out^=(data[0]^0xee);//将data[0]改为新数据后计算新校验和的方法 

out^=(data[5]^0x20);//将data[5]改为新数据后计算新校验和的方法 

printf("修改后校验值:%X\n",out); 

data[0]=0xee; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确  

data[5]=0x20; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确 

Internet地址还有一种表示方法即纯数字的IP地址。例如,计算机的域名地址为:dns.cug.edu.cn,那么一定有—个 IP地址:202.114.200.254与之对应。你可以在任何地方使用这个IP地址,就象使用它的域名地址一样。

扩展资料:

这些数据项可以是数字或在计算检验的过程中看作数字的其它字符串。校验和(checksum)是指传输位数的累加,当传输结束时,接收者可以根据这个数值判断是否接到了所有的数据。如果数值匹配,那么说明传送已经完成。TCP和UDP传输层都提供了一个校验和与验证总数是否匹配的服务功能。

它通常是以十六进制为数制表示的形式,如:

十六进制串:

10102030405060708的校验和是: 24 (十六进制)

如果校验和的数值超过十六进制的FF,也就是255,就要求其补码作为校验和。

通常用来在通信中,尤其是远距离通信中保证数据的完整性和准确性。

参考资料来源:百度百科-校验和