gpt4 book ai didi

c - 基数 4 到基数 2 转换器

转载 作者:行者123 更新时间:2023-11-30 14:23:12 28 4
gpt4 key购买 nike

该程序是将 4 进制数转换为 2 进制数,并且应该就地完成

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

void shiftr(char num[],int i)
{
memmove(num+i,num+i+1,strlen(num)-i);
}

char* convert4to2(char num[])
{
int i=0,len;
char ch;

while(num[i]!='\0')
{
ch=num[i];
shiftr(num,i);
switch(ch)
{
case '0':num[i++]='0';
num[i++]='0';
break;

case '1':num[i++]='0';
num[i++]='1';
break;

case '2':num[i++]='1';
num[i++]='0';
break;

case '3':num[i++]='1';
num[i++]='1';
break;

default:printf("Error");
}
}

num[i]='\0';
return(num);
}



void main()
{
char num[20];
printf("Enter the Base 4 Number:");
scanf("%s",&num);
printf("The Binary Equivalent is:%s\n",convert4to2(num));
}

输入 121(以 4 为基数的数字)的输出应该是 011001,但它只显示 01。对于像 12101 这样的较大数字,它会显示 0100,取第一个和最后一个数字。可能是什么问题呢?

最佳答案

你正在主动破坏你的输入。例如,对于第一次迭代,您将数字移动一个位置,然后用第一个数字的二进制输出覆盖位置 0 和位置 1 的数据(包含 4 基数中的接下来的 2 个数字)。

关于c - 基数 4 到基数 2 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13100561/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com