请问C++高手,我这Manchester编解码有问题吗?

lala_achun 2010-05-02 04:02:18
_int64 Manchester(unsigned int input)
{//曼彻斯特编码:1->10,0->01
unsigned int dd=input;
_int64 temp=0,j=1;
for(int i=0;i<32;i++,dd=dd>>1)
{
if((dd&1)==1)
temp=temp |(j<<(2*i+1));
else
temp=temp |(j<<(2*i));
}
return temp;
}

unsigned int DeManchester(_int64 input)
{
_int64 j=2,dd=input;
unsigned int temp=0,kk=1;
for(int i=0;i<32;i++)
{
if((dd&j)==j)
temp=temp | (kk<<i);
dd=dd>>2;
}
return temp;
}
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wade_2003 2010-05-04
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <assert.h>
#include<string.h>


// 全局变量

#define M 10
int j; //指向编码后序列的数组下标
int i; //输入码字的数组下标
int length; //求值输入数组的长度
int Manchester(char str0[]) //曼彻斯特编码
{
char Manchester[2*M];
memset(Manchester,0,2*M);
Manchester[0]='0';
Manchester[1]='1';
j=2;
// extern length;

for(i=0;i<length;i++)
{
// 循环入口数据
printf("current character is: %c ",str0[i]);

// 循环处理,0 ->01 1 ->10
if(str0[i]=='0') {Manchester[j++]='0';Manchester[j++]='1';}
else if(str0[i]=='1') {Manchester[j++]='1';Manchester[j++]='0';}
else {printf("input error,exit........ "); return 1;} // 输入出错
// 循环处理后数据
printf("-----");
printf("after process: %c%c ",Manchester[j-2],Manchester[j-1]);
}

// 结果字符串加上终结符
Manchester[j]=0;

// 输出结果
printf("------------------------------------------- ");
printf("Manchester coding is :%s ",Manchester);
return 0;
}


看看别人用C写的这个
azure110 2010-05-04
  • 打赏
  • 举报
回复
不懂曼彻斯特编码
向立天 2010-05-04
  • 打赏
  • 举报
回复
不懂曼彻斯特编码
你想问有没有语法问题还是有没有逻辑问题?
lala_achun 2010-05-04
  • 打赏
  • 举报
回复
没人回?!

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧