二进制转换为八进制
按三位分组从右到左对要转换的二进制数进行分组。 小于3位的向左添加0
111001111001=001 110 001 111 001
#includestdio.h完美树叶/strong完美树叶/p #define MAX 1024完美树叶/strong完美树叶/p/* * * * * * * * *左需要补0个move () 完美树叶/strong完美树叶/Pfor(Length; 长度=0; --length (完美树叶/strong完美树叶/p )完美树叶/strong完美树叶/p Elem[length n]=Elem[length]; 完美树叶/strong完美树叶/p }完美树叶/strong完美树叶/PIF(n==1)完美树叶/strong完美树叶/p (完美树叶/strong完美树叶/Pelem((0) ) //0一片完美的树叶/strong完美的树叶/p }完美的树叶/strong完美的树叶/PIF(n==2)//0两片完美的树叶/strong完美的树叶/p (完美的树叶/strong完美的树叶完美树叶/strong完美树叶/p }完美树叶/strong完美树叶/p return Elem; 完美的树叶/strong完美的树叶/p }完美的树叶/strong完美的树叶/p/* * * * * * * * * * * * * * * * * * strong完美的树叶/p
th){
--length;
printf("二进制转换为八进制为:");
for(int i=0;i<length;)
{
int sum=Elem[i]*4+Elem[i+1]*2+Elem[i+2];
printf("%d",sum);
i+=3;
}
}
/*****************用于测试字符串长度 *******************/
void input(int Elemxxdjw,int length)
{
for(int i=0;i<length;++i)
{
printf(" %d ",Elem[i]);
}
}
int main()
{
int i=0;
int Elem[1024];
int flag=1;
while(flag)
{
scanf("%d",&Elem[i]);
if(Elem[i]!=0 &&Elem[i]!=1)
{
flag=0;
}
else
{
++i;
}
}
int length=i;
if(length%3==1)//需要补两个0
{
int *elem=Move(Elem,2,length);
length+=2;
printf("n");
B_O(elem,length);
return 0;
}
if(length%3==2)//需要补一个0
{
int *elem=Move(Elem,1,length);
++length;
printf("n");
B_O(elem,length);
return 0;
}
if(length%3==0)
{
B_O(Elem,length);
return 0;
}
return 0;
}
运行截图: