使用方法:dev c++编译后生成exe文件,方便以后使用
每输入一个16进制格式数据后加空格,输入完毕加回车,大小写任意
example: FF fa Fa 09 00(+enter)
通信中的校验方法之一:每个数据相加之后取余放在数据末尾
#include"stdio.h"
#include "stdint.h"
#include <string.h>
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
uint8_t ascii[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F',};
uint8_t asciii[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f',};
uint8_t char_to_uint(uint8_t input)
{
uint8_t num = 0;
for(;num<16;num++)
if(ascii[num]==input || asciii[num] == input)
return num;
return 0;
}
int main()
{
uint8_t a,b;
uint32_t total = 0;
printf("example: FF fa Fa 09 00(+enter)\r\n");
while(1)
{
printf("-----------START------------\r\n");
do
{
a=getchar();
b=getchar();
total += 16*char_to_uint(a)+char_to_uint(b);
}while( '\n' != getchar() );
printf("CS: ---%c%c--- \r\n",ascii[total%256/16],ascii[total%256%16]);
printf("CS:%d total:%d \r\n",total%256,total);
total = 0;
getchar();
}
}