求编程高手帮忙~写一段8位二进制折叠码(PCM编码器)编译码程序
发布网友
发布时间:2022-05-01 22:51
我来回答
共2个回答
热心网友
时间:2022-06-24 14:20
#include <stdio.h>
#include <conio.h>
int trans(int n)
{
int r=0;
if(n<0)
{
r=r|0x80;
n=-n;
}
if(n<=16)
{
r=r|0x00;
}
else if(n<=32)
{
r=r|0x10;
}
else if(n<=64)
{
r=r|0x20;
}
else if(n<=128)
{
r=r|0x30;
}
else if(n<=256)
{
r=r|0x40;
}
else if(n<=512)
{
r=r|0x50;
}
else if(n<=1024)
{
r=r|0x60;
}
else if(n<=2046)
{
r=r|0x70;
}
else
{
return 0;
}
r=r|(n&0x0f);
return r;
}
main()
{
int n,r,i;
printf("输入一个10进制(1-2048):");
scanf("%d",&n);
if(n>=1 && n<=2048)
{
r=trans(n);
printf("8位2进制为:");
for(i=0;i<8;i++)
{
printf("%c",((r>>(8-i-1))&0x01)+'0');
}
printf("\n");
}
else
{
printf("输入错误!\n");
}
}
热心网友
时间:2022-06-24 14:20
int trans(int n)
{
int r=0;
if(n<0)
{
r=r|0x80;
n=-n;
}
if(n<=16)
{
r=r|0x00;
}
else if(n<=32)
{
r=r|0x10;
}
else if(n<=64)
{
r=r|0x20;
}
else if(n<=128)
{
r=r|0x30;
}
else if(n<=256)
{
r=r|0x40;
}
else if(n<=512)
{
r=r|0x50;
}
else if(n<=1024)
{
r=r|0x60;
}
else if(n<=2046)
{
r=r|0x70;
}
else
{
return 0;
}
r=r|(n&0x0f);
return r;
}
main()
{
int n,r,i;
printf("输入一个10进制(1-2048):");
scanf("%d",&n);
if(n>=1 && n<=2048)
{
r=trans(n);
printf("8位2进制为:");
for(i=0;i<8;i++)
{
printf("%c",((r>>(8-i-1))&0x01)+'0');
}
printf("\n");
}
else
{
printf("输入错误!\n");
}
}