C语言求题解:把输入的十进制数以十六进制数输出 帮忙看一下这个c语言问题:输入一个十进制整数,将其转换成十六...

C\u8bed\u8a00\u7f16\u7a0b\uff0c\u8f93\u5165\u5341\u8fdb\u5236\u6570\u8f93\u51fa\u5341\u516d\u8fdb\u5236\u548c\u516b\u8fdb\u5236

#include #define N 8 void tran(int num,int k) {int arr[N],i;for (i=0;i =0;i--)switch (arr[i]){case 10: printf("A");break;case 11: printf("B");break;case 12: printf("C");break;case 13: printf("D");break;case 14: printf("E");break;case 15: printf("F");break;default: printf("%d",arr[i]);}printf("\n\n\n"); } int main() {int num,choo; loop: printf("\u8bf7\u9009\u62e9\u529f\u80fd\uff1a0.\u9000\u51fa 1.\u5341\u8fdb\u5236\u8f6c\u4e8c\u8fdb\u5236 2.\u5341\u8fdb\u5236\u8f6c\u516b\u8fdb\u5236 3.\u5341\u8fdb\u5236\u8f6c\u5341\u516d\u8fdb\u5236\n");scanf("%d",&choo);switch (choo){case 1:printf("\u8bf7\u8f93\u5165\u8981\u8f6c\u6362\u7684\u5341\u8fdb\u5236\u6570\uff1a");scanf("%d",&num);tran (num,2);goto loop;case 2:printf("\u8bf7\u8f93\u5165\u8981\u8f6c\u6362\u7684\u5341\u8fdb\u5236\u6570\uff1a");scanf("%d",&num);tran (num,8);goto loop;case 3:printf("\u8bf7\u8f93\u5165\u8981\u8f6c\u6362\u7684\u5341\u8fdb\u5236\u6570\uff1a");scanf("%d",&num);tran (num,16);goto loop;case 0:break;
default :printf("\u8f93\u5165\u6709\u8bef\uff01\u8bf7\u91cd\u65b0\u8f93\u5165\uff01\n");goto loop;}}

\u62d3\u5c55\u8d44\u6599
C\u8bed\u8a00\u662f\u4e00\u95e8\u901a\u7528\u8ba1\u7b97\u673a\u7f16\u7a0b\u8bed\u8a00\uff0c\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5e95\u5c42\u5f00\u53d1\u3002C\u8bed\u8a00\u7684\u8bbe\u8ba1\u76ee\u6807\u662f\u63d0\u4f9b\u4e00\u79cd\u80fd\u4ee5\u7b80\u6613\u7684\u65b9\u5f0f\u7f16\u8bd1\u3001\u5904\u7406\u4f4e\u7ea7\u5b58\u50a8\u5668\u3001\u4ea7\u751f\u5c11\u91cf\u7684\u673a\u5668\u7801\u4ee5\u53ca\u4e0d\u9700\u8981\u4efb\u4f55\u8fd0\u884c\u73af\u5883\u652f\u6301\u4fbf\u80fd\u8fd0\u884c\u7684\u7f16\u7a0b\u8bed\u8a00\u3002
\u5c3d\u7ba1C\u8bed\u8a00\u63d0\u4f9b\u4e86\u8bb8\u591a\u4f4e\u7ea7\u5904\u7406\u7684\u529f\u80fd\uff0c\u4f46\u4ecd\u7136\u4fdd\u6301\u7740\u826f\u597d\u8de8\u5e73\u53f0\u7684\u7279\u6027\uff0c\u4ee5\u4e00\u4e2a\u6807\u51c6\u89c4\u683c\u5199\u51fa\u7684C\u8bed\u8a00\u7a0b\u5e8f\u53ef\u5728\u8bb8\u591a\u7535\u8111\u5e73\u53f0\u4e0a\u8fdb\u884c\u7f16\u8bd1\uff0c\u751a\u81f3\u5305\u542b\u4e00\u4e9b\u5d4c\u5165\u5f0f\u5904\u7406\u5668\uff08\u5355\u7247\u673a\u6216\u79f0MCU\uff09\u4ee5\u53ca\u8d85\u7ea7\u7535\u8111\u7b49\u4f5c\u4e1a\u5e73\u53f0\u3002
\u4e8c\u5341\u4e16\u7eaa\u516b\u5341\u5e74\u4ee3\uff0c\u4e3a\u4e86\u907f\u514d\u5404\u5f00\u53d1\u5382\u5546\u7528\u7684C\u8bed\u8a00\u8bed\u6cd5\u4ea7\u751f\u5dee\u5f02\uff0c\u7531\u7f8e\u56fd\u56fd\u5bb6\u6807\u51c6\u5c40\u4e3aC\u8bed\u8a00\u5236\u5b9a\u4e86\u4e00\u5957\u5b8c\u6574\u7684\u7f8e\u56fd\u56fd\u5bb6\u6807\u51c6\u8bed\u6cd5\uff0c\u79f0\u4e3aANSI C\uff0c\u4f5c\u4e3aC\u8bed\u8a00\u6700\u521d\u7684\u6807\u51c6\u3002 \u76ee\u524d2011\u5e7412\u67088\u65e5\uff0c\u56fd\u9645\u6807\u51c6\u5316\u7ec4\u7ec7\uff08ISO\uff09\u548c\u56fd\u9645\u7535\u5de5\u59d4\u5458\u4f1a\uff08IEC\uff09\u53d1\u5e03\u7684C11\u6807\u51c6\u662fC\u8bed\u8a00\u7684\u7b2c\u4e09\u4e2a\u5b98\u65b9\u6807\u51c6\uff0c\u4e5f\u662fC\u8bed\u8a00\u7684\u6700\u65b0\u6807\u51c6\uff0c\u8be5\u6807\u51c6\u66f4\u597d\u7684\u652f\u6301\u4e86\u6c49\u5b57\u51fd\u6570\u540d\u548c\u6c49\u5b57\u6807\u8bc6\u7b26\uff0c\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u5b9e\u73b0\u4e86\u6c49\u5b57\u7f16\u7a0b\u3002
C\u8bed\u8a00\u662f\u4e00\u95e8\u9762\u5411\u8fc7\u7a0b\u7684\u8ba1\u7b97\u673a\u7f16\u7a0b\u8bed\u8a00\uff0c\u4e0eC++\uff0cJava\u7b49\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\u6709\u6240\u4e0d\u540c\u3002
\u5176\u7f16\u8bd1\u5668\u4e3b\u8981\u6709Clang\u3001GCC\u3001WIN-TC\u3001SUBLIME\u3001MSVC\u3001Turbo C\u7b49\u3002
\uff08\u53c2\u8003\u8d44\u6599 \u767e\u5ea6\u767e\u79d1 C\u8bed\u8a00\uff09

\u6700\u7b80\u5355\u7684\uff0c\u4e0d\u6d89\u53ca\u7b97\u6cd5\u7684\u4f5c\u6cd5\u5c31\u662f\u7528printf\u7684\u8f93\u51fa\u683c\u5f0f %x \u8f93\u51fa16\u8fdb\u5236
%x \u8f93\u51fa\u5c0f\u5199\u7684a\u3001b\u3001c\u3001d\u3001e\u3001f %X\u8f93\u51fa\u5927\u5199\u7684A\u3001B\u3001C\u3001D\u3001E\u3001F
#include int main(){ int a; printf("\u8bf7\u8f93\u5165\u4e00\u4e2a10\u8fdb\u5236\u6574\u6570\uff1a" ); scanf( "%d", &a); printf("\u8be5\u6570\u8f6c\u6362\u4e3a16\u8fdb\u5236\u6570\u4e3a\uff1a %X\n",a); return 0;}

#include <stdio.h>
main()
{
char b[17]={"0123456789ABCDEF"}; /*十六进制位值表示,相当于十进制的0—9;*/
int c[64],d,i=0,base=16;
long n;
printf("Enter a number:\n");
scanf("%ld",&n);
do
{
c[i]=n%16; /*得到16进制的各个位,放进c【i】,如58,等于3余10,*/
i++; /*记录转化后有几位 */
n=n/16; /* 你自己拿一个数按它的方法过程除10得到结果比较下,你就基本能理解了只不过一个除16,一个除10,几进制就除几*/
/**/
}while(n!=0);

printf("Transmite new base:\n"); /*新转化的数是:(屏幕输出提示而已)*/

for(--i;i>=0;--i) /*输出转化换的结果啊,前面说了i记录的是转换后的位数,从高位开始输出对应b[17]里的位值表示*/
{ /*如果只有一位例如13转化后应该是C,i=1;i减1后为零,符合条件i>=0可以进乳循环,对应的是c[0]=13,*/
d=c[i]; /*d=13*/
printf("%c",b[d]); /*输出的为b[13]=C*/
} /*同样如果多位结果继续循环如:20转化后i=26;c[1]=1,c[0]=A;d先等于1,后为10(A),输出1A*/

printf("\n");
}

#include <stdio.h>
main()
{
char b[17]={"0123456789ABCDEF"};
int c[64],d,i=0,base=16;
long n;
printf("Enter a number:\n");
scanf("%ld",&n);

do //这个循环是要把十进制分离成十六机制数
{
c[i]=n%16; //对16求余之后,c[i]存的就是数就是十六进制数的‘个’,‘十六’,‘二百五十六’位了
i++;
n=n/16; //分离一位之后弃掉一位
}while(n!=0);

/*举例来说你输进去一个数是257
第一个循环n=257
C[0]就是257对十六求余得1,此时n=257
之后 n对16求模,也就是求n中共有多少个16,此时n=16,也就是说n=n/16一句完全可以换为n=(n-n%16)/16 其实n%16就是被抛弃的部分
第二个循环n=16
c[1]=0,n=1
第三个循环n=1
c[2]=1,n=0
n=0退出循环
这样就将257转换为101H可以计算101H=16^2+0*16+1=257结果没有问题
*/

printf("Transmite new base:\n");/*该句在逻辑上是没有用的,就是提示用户输出的数据时转换过的了*/

/*这个循环有什么用?我就知道如果输入个小于16的数能用上吧?
是这样的在出do-while循环后i的值是要大于c里面有效地数据的,所以这个循环要先减一
可以改成这样
i--;
for(i;i>=0;i--)
{
d=c[i];
printf("%c",b[d]);
}
*/
for(--i;i>=0;--i)
{
d=c[i];
printf("%c",b[d]);
}
printf("\n");//该处最好改成 printf("H\n"); 原因:H是十六进制的标志,不改也没有影响,仅是一个建议
}

他那个好麻烦的转换。大体思路是这样的,就拿一个十进制数如26,不停地对16求余,得到的余数大于9,则按A(10)B(11)C(12)D(13)E(14)F(15)这样排列存储,小于10就是123456789这样,他们都被存储在字数数组中如我的n16[],最后倒着输出就是转换后的16进制字符串了。
#include <stdio.h>
#include <string.h>
main()
{
int n10,t,i=0;
char n16[64];
printf("输入10进制数:");
scanf("%d",&n10);
while(n10>0)
{
t=n10%16;n10/=16;
if(t>9)
n16[i++]=t-10+'A';
else
n16[i++]=t+'0';
}
n16[i]='\0';
printf("转换为十六进制数:%s\n",strrev(n16));
return 0;
}

  • 鐢C璇█缂栫▼,杈撳叆涓涓崄杩涘埗姝f暣鏁,杈撳嚭鍏跺搴旂殑鍗佸叚杩涘埗鏁存暟銆
    绛旓細include<stdio.h> int main(){ int a,*p;p=&a;scanf("%d",p);printf("%x\n",*p);return 0;}
  • 姹傜敤C璇█缂栫▼:浣垮緱杈撳叆鐨勪竴涓崄杩涘埗鏁存暟,杞寲涓哄叓杩涘埗鏍煎紡鍚庤緭鍑
    绛旓細include <stdio.h> int main(void){ int data = 0;char y;printf("杈撳叆涓涓10杩涘埗鏁存暟\n");scanf("%d", &data);while(1){ data = data / 8;y = data % 8;printf("%c", y + '0');if(data == 0){ printf("\n");break;} } return 0;} ...
  • C璇█缂栫▼,杈撳叆鍗佽繘鍒舵暟杈撳嚭鍗佸叚杩涘埗鍜屽叓杩涘埗
    绛旓細scanf("%d",&num);tran (num,2);goto loop;case 2:printf("璇杈撳叆瑕佽浆鎹鐨勫崄杩涘埗鏁帮細");scanf("%d",&num);tran (num,8);goto loop;case 3:printf("璇疯緭鍏ヨ杞崲鐨勫崄杩涘埗鏁帮細");scanf("%d",&num);tran (num,16);goto loop;case 0:break;default :printf("杈撳叆鏈夎锛佽閲嶆柊杈撳叆锛
  • C璇█銆灏嗚緭鍏ョ殑鍗佽繘鍒舵暟杞负b杩涘埗鏁般
    绛旓細a[20],i;for(i=0;m;i++){ a[i]=m%k;m/=k;} for(i--;i>=0;i--)printf("%d",a[i]);} void main(){ int b,n;scanf("%d%d",&b,&n);tran(b,n);} 鍙﹀濡傛灉鏄浆鎹㈡垚澶т簬10鐨勫崄杩涘埗鏁 姝ょ▼搴忓氨涓嶈 渚嬪鎶11杞崲鎴16杩涘埗鏁扮殑璇濆簲璇ユ槸B 浣嗚繖涓▼搴忔牴鏈笉鑳藉疄鐜 ...
  • c璇█缂栫▼棰:浠庨敭鐩杈撳叆涓涓崄杩涘埗鏁,灏嗗叾杞崲涓轰簩杩涘埗銆佸叓杩涘埗鍜屽崄鍏...
    绛旓細void func(int n,int m)//n涓鍗佽繘鍒舵暟锛宮涓2锛8锛屾垨16 { Stack S;InitStack(S);while(n!=0){ push(S,n%m);n=n/m;} display(S);} void main()//杩欑敤鏉ユ祴璇昮unc { int n=12,m=2;func(n,m);m=8;func(n,m);m=16;func(n,m);} //宸插湪vc2005涓祴璇曡繃锛屽彲鐢紝鑷充簬16...
  • C璇█:閿洏杈撳叆涓涓崄杩涘埗鏁存暟,杈撳嚭鍏跺搴旂殑浜岃繘鍒躲佷笁杩涘埗銆佸洓杩涘埗...
    绛旓細=N[x%n];x/=n;}for(i=total-1;i>=0;i--){p[total-1-i]=tmp[i];}if(total==0){p[0]='0';p[1]=0;}elsep[total-1-i]=0;}int main(){char s[100];//鐢ㄤ簬瀛樻斁杞崲鐨杩涘埗鐨鏁癷nt i,x; printf("鎶婁竴涓鏁拌浆鎹㈡垚2 3 4 ... 16杩涘埗鏁\n");scanf("%d",&x);...
  • 甯繖鐪嬩竴涓嬭繖涓c璇█闂:杈撳叆涓涓崄杩涘埗鏁存暟,灏鍏惰浆鎹㈡垚鍗佸叚杩涘埗鏁...
    绛旓細%x 杈撳嚭16杩涘埗 x 杈撳嚭灏忓啓鐨刟銆乥銆c銆乨銆乪銆乫 %X杈撳嚭澶у啓鐨凙銆丅銆C銆丏銆丒銆丗 include <stdio.h>int main(){ int a; printf("璇杈撳叆涓涓10杩涘埗鏁存暟锛" ); scanf( "%d", &a); printf("璇ユ暟杞崲涓16杩涘埗鏁涓猴細 %X\n",a); return 0;} ...
  • C璇█缂栫▼:浠庨敭鐩樹笂杈撳叆涓涓崄杩涘埗鏁,灏鍏惰浆鎹㈡垚鍏繘鍒舵暟,鐒跺悗...
    绛旓細闈為掑綊绠楁硶锛歩nclude <iostream> using namespace std;include <math.h> define MAXSIZE 20 typedef struct Stack { char node[MAXSIZE];int top;}Stack;int main(){ Stack s;s.top=-1;int n;cout<<"璇杈撳叆鍗佽繘鍒舵暟锛"<<endl;cin>>n;int m;cout<<"璇疯緭鍏ヨ杞寲鐨勮繘鍒舵暟锛"<<endl;cin...
  • c璇█浠庨敭鐩杈撳叆涓涓崄杩涘埗鏁,灏鍏惰浆鎹负浜岃繘鍒躲佸叓杩涘埗鍜屽崄鍏繘鍒舵暟...
    绛旓細include"stdio.h"main(){ int i;printf("enter a number");scanf("%d",&i);printf("\n鍏杩涘埗涓%o",i);printf("\n鍗佸叚杩涘埗涓%x",i);}
  • 4銆C璇█缂栫▼:杈撳叆涓涓崄杩涘埗鏁,杈撳嚭瀵瑰簲鐨勪簩杩涘埗鏁.
    绛旓細include<stdio.h> void dec2bin(int x){if(x>1)dec2bin(x/2);printf("%d",x%2);} int main(){int x;scanf("%d",&x);dec2bin(x);return 0;}
  • 扩展阅读:扫一扫题目出答案 ... c语言进制转换编程 ... c++入门程序代码 ... c#十进制转换为二进制 ... 十六进制在线转换器 ... c语言十六进制对照表 ... c#的十六进制转十进制 ... 二进制对照表大全 ... c语言进制数互相转换代码 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网