计算机网络实验 零比特,计算机网络—实现零比特插入法(代码)

#includestdio.h

#includemath.h

#define FRAME_SIZE 64

#define _CRT_SECURE_NO_DEPRECATE 消除scanf函数在VS2005下的警告

void main()

{

intm,n,temp,arr[FRAME_SIZE];

staticint  count = 0;

sta

count= 0;对静态变量恢复到初始值

printf(请输入您要检测的二进制数n);

scanf(%d,&m);

temp=m;

n= 0;

while(temp  10)

{

temp= int(temp10);

n++;输入的数字为n+1位

printf(temp=%dt n=%dn,temp,n);

}

temp= m;

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

{

intk = tempint(pow(10.0,n-i));将第n+1位上的数字计算出来传递给k

printf(k=%dt temp =%dn,k,temp);

注意这个地方因为pow函数对应有flaot和double的实现,标注10.0之后就自动对应float类型参数

if(k!=0&& k!= 1)判断是否是二进制数

{

printf(您所输入的不是二进制数n);

gotosta;

这次使用goto语句发现goto语句实在是太难调试了,因为随意跳转可能导致很多地方不能使用局部变量;

而对于静态全局变量又不得不考考虑是否给他初始化到原来值

}

arr[i]=k;将数据放入数组

intt=temp -int(pow(10.0,n-i));

if(t=0)当去掉首位为0时不用再减

{

temp= t;

}

}

printf(实际发送数据为n);

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

{

printf(%dt,arr[i]);

}

插入0

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

{

if(arr[i]=1)

{

count++;

}

if(count 4)

{

n++;

inta = n;

while(ai+1)注意i是从0开始的,要在i+1位插入

{

arr[a]= arr[a-1];

printf(arr[a]=%dt,arr[a]);

a--;

}

保持变量i和n同时移

arr[i+1]=0;

i++;数组数据后移1位

count=0;

}

}

printf(实际发送数据为n);

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

{

printf(%dt,arr[i]);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值