您的位置:

c语言比特序列,c语言递减序列

本文目录一览:

发送数据的比特序列怎么算

要发送的数据比特序列为1010001101,CRC校验生成多项式为G(x)=x5+x4+x2+1,

试计算求出其CRC校验的比特序列!

110101是六位的,所以先在100010010111后加五个0,变为10001001011100000,再用10001001011100000除以110101,把得到的余数加到10001001011100000上就搞定了

C# 比特数组是什么

没区别~都是数组,把它看成一组序列号嘛,普通数组是不同类型的,比如String,int等等,int型数组就看成全部是int型的一组序列号,由下标0.1.2.3来表示。String型数组就是一组字符串序列号,"123.21245.365"组成

Bit数组装的只是二进制组成的一组数据或者序列号,这样你好理解了吧?

使用c语言,生成一个实虚部分别为16比特的复数序列,长度为839.

#include stdio.h

#include stdlib.h

#include time.h

const int MAXSIZE = 839;

typedef struct complex {

unsigned short real;

unsigned short image;

}COMPLEX;

char *toString(unsigned short n,char s[]) {

int i = 15;

s[16] = '\0';

while(i = 0) {

s[i] = n % 2 + '0';

n /= 2;

--i;

}

return s;

}

void show(COMPLEX a[], int n) {

int i;

char s[17];

for(i = 0; i  n; ++i) {

printf("%6d : %s\n",a[i].real,toString(a[i].real,s));

printf("%6d : %s\n\n",a[i].image,toString(a[i].image,s));

}

}

int main() {

COMPLEX myvector[MAXSIZE];

int i,n = 7;

srand((unsigned short)time(NULL));

for(i = 0; i  n; ++i) {

myvector[i].real = rand()%100;

myvector[i].image = rand()%100;

}

show(myvector,n);

return 0;

}

C语言或c++能不能直接使用“比特”

我记得C语言中有一种叫做“位段”的东西,但是不知道现在的编译器是不是还支持:

struct tag {

unsigned int a :1; //占一个bit

unsigned int b :7; //占7个bit

};

这种东西在C++中不一定还支持,而且在现实的计算机中,空间往往不值得费这么大劲,编译器往往会把两个字节的东西优化为四个字节(为了速度,牺牲空间),更不要说这种计较每个bit的方法了。

如果必须要用,我建议你用位操作。比如 int a; //4个byte,32个bit

a |= 0x03; //把末两个bit都置为1

a = (a ~0x00FF) | (b 0xFF); //把a的低8位置为b的低八位。

等等。。。