用c++或VB编写CRC码【(7,3)循环码】生成程序,生成码为10111

作者&投稿:漳泻 (若有异议请与网页底部的电邮联系)
求C++中求CRC码的程序代码~

unsigned char crc8(unsigned char *source,unsigned int number)
{
unsigned int i = 0;
unsigned char sumvalue = source[0];
for(i = 1; i < number; i++)
{
sumvalue ^= source[i];
}
return sumvalue;
}

string CRC(string a,string b){//CRC校验,a为被除数,b为除数(a,b均为二进制字符串)
string s1,s2,temp;
int len;
len = b.length();
for(int i=0;i<len-1;i++)
a.append("0");
while(a.length()>=b.length()){
s2 = "";
s1 = a.substr(0,len);
a = a.substr(len,a.length()-len);
for(int i=0;i<(int)b.length();i++){
if(s1[i]==b[i]){
s2.append("0");
}else{
s2.append("1");
}
}
while(s2.length()!=0){
temp = s2[0];
if(temp.compare("0")!=0)
break;
s2 = s2.substr(1,s2.length()-1);
}
a = s2.append(a);
}
return a;//即为校验码
}
//多少位都行。

主要有函数void code(char m,char* in,char* out)实现编码
m为生成码,这里10111对应为23
in为输入3位二进制码字符串的指针
out为输出7位二进制码字符串的指针

#include<stdio.h>
#define M char(23) //对应生成码10111

void code(char ,char*,char*);

void main()
{
char incode[8],outcode[8];
outcode[7]='\0';
printf("输入三位由0,1组成的二进制码:");
scanf("%s",&incode);
code(M ,incode,outcode);
printf("输出码为:%s",outcode);
}

void code(char m,char* in,char* out)
{
int i;
char j,temp=0;
for(i=0;i<3;i++)
{
temp=temp<<1;
if(in[i]=='1')
temp=temp^m;
}
for(i=0,j=64;i<7;i++,j>>=1)
{
if(temp&j)
out[i]='1';
else
out[i]='0';
}
}


C语言与VB有什么区别?
vb与C语言的区别如下所示:1、C语言是一门通用计算机编程语言,广泛应用于底层开发,C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。2、VB是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、...

VB和C有什么联系吗?
所有语言的流程控制都差不多无外乎循环,分支之类 vb适合做界面 新建一个标准exe工程,拖进来一个按钮,(点击按钮,然后在窗体上拖拽)双击这个按钮进入代码页 加入 Print " hello world "最终代码如下“Private Sub Command1_Click()Print " hello world "End Sub 然后编译(文件>>生成*.exe文件)...

VB和C语言编程,急
2.掌握数据结构与算法的基本知识并能熟练的应用。3.掌握并能熟练运用操作系统的基本知识。4.掌握数据库的基本概念,深入理解关系数据模型、关系数据理论和关系数据库系统, 掌握关系数据语言。5.掌握数据库设计方法,具有数据库设计能力。了解数据库技术发展。6.掌握计算机操作,并具有C语言编程,开发数据库...

vb,c语言等,哪个好?
虽然VB原来的BASIC是教学用语言,另外一个教学用语言是Pascal。BASIC的好处是解释型语言,容易上手,缺点就是容易养成随时改的坏习惯:程序写错了无所谓,随时随地改。就好像还没写字,手里先握着橡皮。C语言就完全不同了,任何小的错误都不能接受,你需要每一次都比较认真的写。不过TC不推荐了,新的...

要用C语言或者vb写一个调用windows8蓝牙,通过蓝牙发送十六进制数据的...
1)C语言或VB的一般程序开发知识 2)蓝牙的通信规范和有关子程序 3)当然计算机的基础知识也必须

c语言难还是vb难?
C语言比VB难很多,C是学不完的, VB学的不深,不清楚.不过新手学建议学C.C是面向过程的,可以对硬件应将控制.,是底层的高级语言.所以一直排名前几名.VB是可视化的,所以C和VB比C比较枯燥,VB上手容易.我有别的语言基础,学3天就把VB基础看完了,后来也就不是那么容易了,因为你直接学面向对象的后面...

编程中VB跟VC指的是什么 请详细说清楚...
n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。 nVC适合组织大工程(VB就不行) nBorlandC++或C++Builder也很不错,并不比VC差...

VB调用C程序
调用时需要在VB中声明调用的接口(就象VB调用系统的API函数一样);第二种就是将部分功能用C语言编写成COM组件并在系统中注册以供VB程序调用,调用时在VB的项目中添加对该COM组件的依赖,定义出该组件的对象直接调用(就象VB调用EXCEL等微软提供的COM组件一样);

浅谈c语言和c++和VB的区别
VisualBasic是一种可视化的面向对象的编程语言,以其编程简单、快捷等特点,深受广大WINDOWS程序员的青睐。优点:利用VB开发界面友好、操作方便的软件只需很短的时间。缺点:VB运行速度较慢 C语言是国际上非常流行的一种中级编程语言,以其灵活、高效等优点而获得广泛应用,许多的应用程序都是用C语言在DOS...

用C语言可以写操作系统吗?
C语言当然是可以写操作系统的,但是操作系统的编写一般都不仅仅只是用C语言编写的。写操作系统需要编程语言提供以下几个特征:1、跨平台,不能是只在某个平台下编译(VB就不行);2、必须是编译型语言(PHP就不行),或者有一个非常高效的解释器;3、必须有方便的操作硬件的功能,容易嵌入汇编(Java就...

钟山区17617117301: 用C语言实现CRC编码程序 -
门荆草铂: #include <stdio.h> #include <string.h> #include "stdlib.h" unsigned int char2int(char *str) {unsigned int count=0, ret=0;for(count = 0; count<strlen(str);count++){ret = ret<<1;if('0' != str[count]){ ret+=1;}}return ret; }unsigned int getR(char *str...

钟山区17617117301: VB下如何编写CRC校验程序?
门荆草铂:随着计算机技术的不断发展,在现代工业中,利用微机进行数据通讯的工业控制应用得也越来越广泛.由于传输距离、现场状况等诸多可能出现的因素影响,计算机与受控设备之间的通讯数据常会发生无法预测的错误.为了防止错误所带来的影...

钟山区17617117301: 怎么用VB做8位CRC程序 -
门荆草铂: unction CalCRC(BCRC As Integer, GP As Long, BDF As Long) As Long Dim C1&, C2& Dim A1%, preC1& Dim LeftValue%, A1Shift% If BDF = 0 Then CalCRC = 0 Exit Function End If A1 = (Len(Hex(BDF)) - 1) * 4 C1 = BDF * 2 ^ BCRC LeftValue...

钟山区17617117301: 用C++或C语言编一个CRC校验程序,求救啊,可以发邮箱里
门荆草铂: string CRC(string a,string b){ //CRC校验,a为被除数,b为除数(a,b均为二进制字符串) string s1,s2,temp; int len; len = b.length(); for(int i=0;i&lt;len-1;i++) a.append("0"); while(a.length()&gt;=b.length()){ s2 = ""; s1 = a.substr(0,len); a = a....

钟山区17617117301: 用S7 - 200的编程软件怎么写CRC校验程序? -
门荆草铂: 整理一个CRC校验计算的子程序TITLE=子程序注释// CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而...

钟山区17617117301: vb编写双机通信,要求加入crc,怎么加啊?超急. -
门荆草铂: 这是一个普遍的CRC16校验for VB的 Function crc16(ByRef cmdstring() As Byte, ByVal j As Integer) Dim data As Integer Dim i As Integer Addressreg_crc = &HFFFF For i = 0 To j Addressreg_crc = Addressreg_crc Xor cmdstring(i) For j = 0 To 7 ...

钟山区17617117301: 关于CRC校验的问题 程序如下 请高手指点下 -
门荆草铂: crc是校验码..用来异或的

钟山区17617117301: 我要用C语言编写CRC16效验码.通过输入一个串然后计算出CRC16效验码.例如:输入010600001388计算得到849C -
门荆草铂: int cal_crc(unsigned char *ptr, unsigned char len) { unsigned char i; unsigned int crc_value =0; while(len--) { for(i=0x80; i!=0; i>>=1 ) { if (crc_value&0x8000) crc_value = (crc_value << 1) ^0x8005 ; else crc_value = crc_value << 1 ; if(*ptr&i) 另外,站长团上有产品团购,便宜有保证

钟山区17617117301: 用java编写一个获得CRC校验码的javabean -
门荆草铂: private static String mkCrc16(String str) {CRC16 crc16 = new CRC16();byte[] b = str.getBytes();for (int i = 0; i < b.length; i++)crc16.update(b[i]);return Integer.toHexString(crc16.value);} private static String mkCrc(String string) throws ...

钟山区17617117301: 如何在Vc中编写CRC校验程序 -
门荆草铂: void vCRCCheckNumCalculate(unsigned char *pCheckBuf,unsigned char u8Lth,unsigned char * u8Low,unsigned char * u8High) {unsigned char i; unsigned char j; unsigned int u16CRC=0xFFFF; unsigned char TT;for(j=0;j {u16CRC=u...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网