c语言校验
『壹』 c语言累加和校验
用位运算按位与得出校验数,参考代码如下:
#include<stdio.h>
int main()
{
char str[101];
int i,sum;
gets(str);
i=sum=0;
while(str[i]!=0)
sum+=str[i++];
printf("%d",sum&(0x0FF));
return 0;
}
『贰』 C语言判断
switch(choice){
case 1: price = 3.0; break;
case 2: price = 2.5; break;
case 3: price = 4.0; break;
case 4: price = 3.5; break;
default: price = 0.0; break;
}
应该是抄这样,不用加判断语句
『叁』 C语言实现CRC8校验
不知道你抄说的CRC是不是网络上的CRC,网络上的CRC原理是商定一个除数,然后将发送数据除以除数的余数作为CRC校验码一起发送,最后接收到的数据也除以这个除数,如果没有错误除的结果为0,但是这个校验机制是不能判断出原发送码中哪里出错的
『肆』 C语言实现CRC校验
把我知道的说一下:
码流后面加8个0可以用移位得到(码流<<8;)
单次异或运算可以用运算符专:^(运算符两边为常属数)
由于你校验的是5个字节,且要多次异或运算,所以得借助数组,或其它的数据结果才能完成。
最后问一下你是做硬件的吗
『伍』 c语言计算检验和。。。。。。。。
第一段是将高nleft/2位的数字累加第二段式说 如果nleft=1 sum等于 w的高位第三段 将sum的高十六位移到地十六位 并与原sum的低16位相加然后再把得到的这个数取反 至于这句话sum+=(sum>>16); 我也没太看懂sum已经剩下低16位了再右移不久是0了吗 加0有什么意义呢?这大概是一个校验码的生成方法你对照这个方法看代码应该就很容易理解了我现在看代码也就是看看代码再干什么
『陆』 C语言程序如何校验和执行
Ctrl+F9 - Alt+F5 反正不管哪个版本 先组建再编译 系统就自动检查是否有错误 最后在运行就OK了。
『柒』 校验和的C语言解答
【temp=temp+*chk8;】
temp加上 chk8地址上的值 再复制给temp
【if(temp<*chk8)】
如果temp小于chk8地址上的值
temp自增
chk8位置自增
*chk8 你可以当它是个变量
chk8 的值是一个地址
chk8++ 指针往后移,后移的大小和指针指向类型大小一样.
『捌』 如何用c语言实现验证码的校验
什么校验方法?
CRC检验如下:
#include<stdio.h>
int binaryToDec(char *str)
{
unsigned n=0;
while(*str!='\0')
{
if(*str<'0'||*str>'9')return -1;
n=n*2+(*str-'0');
str++;
}
return n;
}
void printBinary(int n)
{
if(n>1)printBinary(n/2);
printf("%d",n%2);
}
void main()
{
unsigned n,m,CRC=0x1A8000,fD=0x100000;
char CRC16[32];
while(1)
{
printf("输入16位校验码:");
gets(CRC16);
n=binaryToDec(CRC16);
if(n>65535)
printf("输入值过长,请重新输入\n");
else break;
}
n<<=5;//n左移5位
m=n;//m等于
while(fD>0x20)
{
while( !(m&fD) && !(CRC&1) )//保证被除数第一位为1
{
CRC>>=1;//除数右移一位
fD>>=1;//被除数首位的标志位右移一位
}
m=m^CRC;//被除数与除数相异或
}
n+=m;//模二余数相加
printf("输出21位校验码:");
printBinary(n);
printf("\n");
getchar();
}
『玖』 用C语言校验ISBN码是否合法
#include<stdio.h>
voidmain()
{
charisbn[11];
inti,sum;
printf("inputisbn:");
for(i=0;i<10;i++)
{
scanf("%c",&isbn[i]);
}
isbn[10]='