分享一个用VC做的LRC校验计算器
http://pan.baidu.com/s/1o6mS7Ia为什么不能上传附件呢?谁帮忙传一下 我帮楼主传上来了。
见附件:
但是,我在WIN8.1 64位系统下,不能运行,不知道怎么回事。 请楼主下载验证一下,是不是我下载的文件有问题,如下图:
本帖最后由 oldmen 于 2015-6-24 19:54 编辑
huchunlei 发表于 2015-6-24 19:41
我帮楼主传上来了。
见附件:
在win7 32位系统下运行正常。
下载的文件没有问题
下面是LRC校验的fun
unsigned char LRC_Check(unsigned char *data,unsigned char length)
{
unsigned char i;
unsigned char k;
unsigned char result;
unsigned char lrcdata;
for(i=1;i<length+1;i++)
{
if(data>0x40)
lrcdata=data-0x41+10;
else
lrcdata=data-0x30;
}
for(i=0;i<length/2;i++)
{
k+=(lrcdata*16+lrcdata);
}
k=k%256;
k=256-k;
result=k%256;
return result;
}
我有个虚拟机,用Vmware player 做的, 装的是 WIN7 32位,也不行,一样的提示,估计要安装 VC 的运行环境吧。 我正好这两天要用 VC#, 一会我装个 Visual studio 2012, 然后再测试下, 有结果了在来补充。 顺便问个问题0xfd 转换成“FD”最简洁的方法是什么 oldmen 发表于 2015-6-24 19:57
顺便问个问题0xfd 转换成“FD”最简洁的方法是什么
void fun( char *bufin, char *bufout)
{
if((NULL == bufin) || (NULL == bufout)) {
return ;
}
butout = 'F';
bufout = 'D';
}
这样可以么? oldmen 发表于 2015-6-24 19:57
顺便问个问题0xfd 转换成“FD”最简洁的方法是什么
这个问题,最简洁的方式,我也不知道。因为 VC我不懂, 而VC# 是基于.NET 的, 有现成的转换函数可以使用,比如 BitConverter.ToString(), VC#我用的也不多。 而我平时用的多的是单片机下用C语言, C语言的这种转换,我一般用 sprintf,但是sprintf耗内存和堆栈多些,也不算是最简洁的方法。 huchunlei 发表于 2015-6-24 20:14
这个问题,最简洁的方式,我也不知道。因为 VC我不懂, 而VC# 是基于.NET 的, 有现成的转换函数可以使 ...
unsigned char const asc_tab[] = {'0','1','2','3','4','5','6','7','8','9','A','B','c','D','E','F'};
void hex2asc(unsigned char *dst, unsigned char *src, int len)
{
unsigned char dat;
while(len--)
{
dat = *src++;
*dst++ = asc_tab;
*dst++ = asc_tab;
}
}
页:
[1]