先生您好,我想看看您写的19进制转换的问题,您可以发给我吗,我没会员看不了,如果是位运算的话,有不用位运算实现的版本吗,我不理解位运算。
是10进制转换19进制吗 ?
你题目的解答代码如下:
#include <stdio.h>
char *dto19(int x, char *s)
{
int i, n = 0;
int v;
do
{
v = x % 19;
if (v < 10)
s[n] = v + '0';
else
s[n] = v - 10 + 'A';
x = x / 19;
n++;
} while (x > 0);
for (i = 0; i < n / 2; i++)
{
v = s[i];
s[i] = s[n - 1 - i];
s[n - 1 - i] = v;
};
s[n] = '\0';
return s;
}
int main()
{
int x;
char s[60];
scanf("%d", &x);
dto19(x, s);
printf("%s\n", s);
return 0;
}
如有帮助,望采纳!谢谢!
#include <stdio.h>
#include <math.h>
#include <string.h>
int convertD(char s[]){//返回十进制数
int T=0,i=0,num=strlen(s);
while(num--){
T+=(s[num]-'0')*pow(9,i);
i++;
}
return T;
}
int convertNt(int T,char s[]){
int i=0,c;
while(T){
c=T%19;
s[i++]=c>=10?(c-10)+'a':c+'0';
T/=19;
}
while(i--){//逆序输出
printf("%c",s[i]);
}
return 0;
}
int main(){
int T;
char s[10];
gets(s);//获取9进制字串
T=convertD(s); //先转十进制
convertNt(T,s); //再转十九进制
return 0;
}