用C语言如何把十进制转换为十六进制,要求程序中运用函数 如何用C语言将一个16进制数转换成10进制数,要求用函数。

\u5728c\u8bed\u8a00\u4e2d\u7528\u6700\u7b80\u5355\u7684\u65b9\u6cd5\u628a\u5341\u8fdb\u5236\u8f6c\u5316\u4e3a\u5341\u516d\u8fdb\u5236

\u4ee3\u7801\u5982\u4e0b\uff1a
#include "stdio.h" int main() { int num=0;int a[100]; int i=0; int m=0;int yushu; char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};printf("\u8bf7\u8f93\u5165\u4e00\u4e2a\u5341\u8fdb\u5236\u6574\u6570\uff1a"); scanf("%d",&num); while(num>0) { yushu=num%16; a[i++]=yushu; num=num/16; } printf("\u8f6c\u5316\u4e3a\u5341\u516d\u8fdb\u5236\u7684\u6570\u4e3a\uff1a0x"); for(i=i-1;i>=0;i--)//\u5012\u5e8f\u8f93\u51fa {m=a[i];printf("%c",hex[m]); } printf("\n"); }
\u7a0b\u5e8f\u8fd0\u884c\u7ed3\u679c\uff1a

\u6269\u5c55\u8d44\u6599
C\u8bed\u8a00\u4e2d\uff0c\u5341\u8fdb\u5236\u8f6c\u6362\u5341\u516d\u8fdb\u5236\uff0c\u53ef\u4ee5\u5148\u8f93\u5165\u5341\u8fdb\u5236\u6574\u6570\uff0c\u7136\u540e\u53bb\u62fc\u5341\u516d\u8fdb\u5236\uff0c\u5341\u516d\u8fdb\u5236\u7531\u6570\u5b57 0~9\u3001\u5b57\u6bcd A~F \u6216 a~f\uff08\u4e0d\u533a\u5206\u5927\u5c0f\u5199\uff09\u7ec4\u6210\uff0c\u4f7f\u7528\u65f6\u5fc5\u987b\u4ee50x\u62160X\uff08\u4e0d\u533a\u5206\u5927\u5c0f\u5199\uff09\u5f00\u5934\uff0c\u53ea\u9700\u628a\u4e8c\u8fdb\u5236\u9664\u4ee516\u5f97\u5230\u4f59\u6570\u53bb\u4e0a\u9762\u5b9a\u4e49\u7684hex[16]\u6570\u7ec4\u8fdb\u884c\u53d6\u503c\u63a5\u53ef\u4ee5\u5f97\u5230\u8f6c\u6362\u7684\u6570\u5b57\u3002
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1-\u5341\u516d\u8fdb\u5236

\u6211\u81ea\u5df1\u7f16\u5199\u7684\u4e00\u4e2a\u51fd\u6570\u3002
\u697c\u4e0a\u7684\u6839\u672c\u6ca1\u8fbe\u5230\u76ee\u7684\u3002\u8d4b\u503c\u8bed\u53e5\u5b9e\u73b0\u7eaf\u7cb9\u662f\u6295\u673a\u53d6\u5de7\u3002\u8003\u8bd5\u80af\u5b9a\u4e3a0\u5206\u3002
\u4e0b\u9762\u662f\u7a0b\u5e8f\u6e90\u4ee3\u7801
#include
void
shuchu(int
c)
//\u8fd9\u4e2a\u51fd\u6570\u4e0d\u7528\u7f16\u5199\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728zhs\u51fd\u6570\u91cc\u9762\u7528\u8bed\u53e5\u5199\u7684//
{
c=c%16;
if(c>=0&&c<=9)
{c=c+48;
putchar(c);
}
else
{
c=c+87;
putchar(c);
}
}
void
zhs(int
c)
{
if(c<=15)
shuchu(c);
else
{
zhs(c/16);
shuchu(c);
}
}
void
main()
{
int
n;
printf("please
enter
a
number:\n");
scanf("%d",&n);
printf("zhuan
huan
hou
de
16jinzhi
shushi
:\n");
zhs(n);
printf("\n");
}
\u4e0d\u597d\u610f\u601d\u5f04\u9519\u4e86\u8fd9\u662f\u4e00\u4e2a\u5341\u8fdb\u5236\u8f6c\u6362\u523016\u8fdb\u5236\u7684\u95ee\u9898\u3002\u6211\u91cd\u65b0\u5e2e\u4f60\u5199\u4e00\u4e2a\u3002

main()
{
void change(int s);
int num;
printf("请输入这个数:");
scanf("%d",&num);
printf("该数的十六进制形式为:0x%x\n",num);
//直接以十六进制的形式将整数输出
change(num);
}
void change(int s)
{ char num1[10];
sprintf(num1,"%x",s);
//sprintf()函数是将变量按指定的格式保存至字符串中。
printf("该数的十六进制形式为:0x%s\n",num1);
}
说明:
%d 以十进制形式输出整数
%o 以八进制形式输出整数
%x 以16进制形式输出整数

说明:
1.首先变量的值和进制无关 int a=10; 和 int a=0X0A;都是一回事。
2.如果要将一个值用十六进制输出
int a = 10;
printf("%X",a); 输出 A
当然了,建议用 printf("0X%X",a); 输出 0XA

附:
%d 以十进制形式输出整数
%o 以八进制形式输出整数
%x 以16进制形式输出整数(0-9 a-f)即:字母小写
%X 以16进制形式输出整数(0-9 A-F)即:字母大写

还是给个可以运行的代码,说明一下问题:

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

char* DecToHex(int iDecVal,char* szHex)
{
//将十进制整数格式化为16进制,结果保存在字符串中
sprintf(szHex,"%X",iDecVal);
return szHex;
}

void main()
{
int iDecVal;
char szHex[100];

iDecVal = 100;
DecToHex(iDecVal,szHex);
printf("Decimal:%d,Hex:%s\n",iDecVal,szHex);
}

  • 鐢–璇█缂栫▼濡備綍灏嗗崄杩涘埗杞崲鎴愬崄鍏杩涘埗?
    绛旓細缁欎綘涓悇绉杩涘埗杞崲鐨勯氱敤鍑芥暟锛鍗佽繘鍒惰浆鍗佸叚杩涘埗锛宒1=10锛宒2=16 include <stdio.h> void conversion(char s[],char s2[],int d1,int d2){ // s[]锛氳浆鎹㈠墠鐨勬暟瀛 // s2[]锛氳浆鎹㈠悗鐨勬暟瀛 // d1锛氬師杩涘埗鏁 // d2锛氶渶瑕佽浆鎹㈠埌鐨勮繘鍒舵暟 // 楂樹簬9 鐨勪綅鏁扮敤澶у啓'A'锝'Z'琛ㄧず int...
  • C璇█缂栫▼濡備綍灏嗗崄杩涘埗杞崲涓浜岃繘鍒跺拰鍗佸叚杩涘埗?
    绛旓細//鍗佽繘鍒惰浆鎹㈡垚浜岃繘鍒,杞垚16杩涘埗鎳掑緱鍐,鍘熺悊宸笉澶歕x0d\x0a#include\x0d\x0aint main()\x0d\x0a{\x0d\x0aint a,sz[100];\x0d\x0aint b,c,d=0,l;\x0d\x0afor(b=0;b<101;b++) sz[b]=0;\x0d\x0aprintf("璇疯緭鍏ヤ竴涓崄杩涘埗鐨勬暣鏁:\n");\x0d\x0ascanf("...
  • C璇█涓敱鍗佽繘鍒鍚鍗佸叚杩涘埗鐨杞寲瑕鎬庝箞鍋?
    绛旓細浣跨敤涓涓瓧绗︽暟缁 char ch[16] = "0123456789ABCDEF",int a = xxx%16锛沜h[a] 杩欎釜鏉ュ彇16杩涘埗鐨勫笺
  • 鍦c璇█涓敤鏈绠鍗曠殑鏂规硶鎶婂崄杩涘埗杞寲涓哄崄鍏杩涘埗
    绛旓細};printf("璇疯緭鍏ヤ竴涓鍗佽繘鍒鏁存暟锛"); scanf("%d",&num); while(num>0) { yushu=num%16; a[i++]=yushu; num=num/16; } printf("杞寲涓哄崄鍏杩涘埗鐨勬暟涓猴細0x"); for(i=i-1;i>=0;i--)//鍊掑簭杈撳嚭 {m=a[i];printf("%c",hex[m]); } printf("\n"); }绋嬪簭杩愯缁撴灉锛...
  • C璇█ 灏99(鍗佽繘鍒)杞负0x99(鍗佸叚杩涘埗)骞惰緭鍑?
    绛旓細鍦C璇█涓紝鍙互浣跨敤printf鍑芥暟灏嗗崄杩涘埗鏁杞崲涓哄崄鍏杩涘埗杈撳嚭銆備緥濡傦紝鍙互浣跨敤涓嬮潰鐨勪唬鐮佸皢99(鍗佽繘鍒)杞崲涓0x99(鍗佸叚杩涘埗)骞惰緭鍑:Copy code include <stdio.h> int main(){ int num = 99;printf("0x%x", num);return 0;} 鍦ㄨ繖娈典唬鐮佷腑锛屾垜浠畾涔変簡涓涓暣鍨嬪彉閲弉um锛屽苟灏嗗叾鍒濆鍖栦负99銆傜劧鍚...
  • 鐢–璇█瀹炵幇:10杩涘埗杞崲16杩涘埗,骞灏16杩涘埗瀛樺湪涓涓瓧鑺備腑,濡備綍瀹炵幇
    绛旓細鍏鎶10杩涘埗鍜16杩涘埗涓綅鏁板瓧瀵瑰簲鍏崇郴鍒楀嚭濡備笅锛0-0銆1-1銆2-2銆3-3銆4-4銆5-5銆6-6銆7-7銆8-8銆9-9銆10-A銆11-B銆12-C銆13-D銆14-E銆15-F 绠楁硶涓句緥濡備笅锛氬崄杩涘埗鏁2500杞垚鍗佸叚杩涘埗鏁 绗竴姝ワ細2500闄や互16锛屽緱156 -- 浣欐暟4 绗簩姝ワ細鎶婄涓姝ョ殑鏁存暟缁撴灉156闄や互16锛 寰9 -- ...
  • C璇█璋冪敤鍑芥暟缂栧啓鎶婂崄杩涘埗鏁存暟n杞崲鎴愬崄鍏繘鍒舵庝箞缂栫▼?
    绛旓細鎬濊矾锛鍗佽繘鍒鏁存暟杞崲涓哄崄鍏杩涘埗鏁存暟閲囩敤"闄16鍙栦綑锛岄嗗簭鎺掑垪"娉曘傚叿浣撳仛娉曟槸锛氱敤16鏁撮櫎鍗佽繘鍒舵暣鏁帮紝鍙互寰楀埌涓涓晢鍜屼綑鏁帮紱鍐嶇敤16鍘婚櫎鍟嗭紝鍙堜細寰楀埌涓涓晢鍜屼綑鏁帮紝濡傛杩涜锛岀洿鍒板晢涓0鏃朵负姝紝鐒跺悗鎶婂厛寰楀埌鐨勪綑鏁颁綔涓鍗佸叚杩涘埗鏁扮殑浣庝綅鏈夋晥浣嶏紝鍚庡緱鍒扮殑浣欐暟浣滀负鍗佸叚杩涘埗鏁扮殑楂樹綅鏈夋晥浣嶏紝渚濇鎺掑垪璧锋潵銆傚弬...
  • c璇█鍗佽繘鍒惰浆鍖栦负鍗佸叚杩涘埗鍘熺悊
    绛旓細渚嬪锛鍗佽繘鍒 17852.5 杞寲涓哄崄鍏杩涘埗锛17852/16 = 1115 浣 12 -- c 1115/16 = 69 浣 11 -- b 69/16 = 4 浣 5 4/16 = 0 浣 4 鏁存暟閮ㄥ垎 寰16杩涘埗: 45bc .5 * 16 = 8.0 鍙 8 浣 0 灏忔暟閮ㄥ垎 寰16杩涘埗: .8 鍚堣捣鏉 0x45bc.8 c 璇█绋嬪簭 printf("%x"...
  • c璇█鎬庝箞鎶10杩涘埗杞崲涓16杩涘埗
    绛旓細娌℃槑鐧戒綘鐨勬剰鎬 1锛灏10杩涘埗鏁伴櫎浠16锛屼綑鏁版槸16杩涘埗鏁扮殑绗竴浣嶏紝鍐嶇敤鍟嗛櫎浠16锛屼綑鏁版槸绗簩浣嶏紝杩欎箞寰幆涓嬪幓锛岀洿鍒板晢灏忎簬16銆傚锛100/16=6---4锛6灏忎簬16锛涙墍浠ュ崄杩涘埗100瀵瑰簲鐨16杩涘埗鏄64锛2锛c璇█涓皢鏁村瀷鏁颁互鍗佹垨鑰16杩涘埗鐨勬牸寮忚緭鍑 鍏蜂綋璇风湅浠ヤ笅浠g爜 include<stdio.h> int main(void){ int...
  • C璇█ 鍗佽繘鍒惰浆鍗佸叚杩涘埗
    绛旓細=0){p=tmp&a;arr[i--]=str[p];tmp=tmp>>b;}printf("%d杞崲涓%d杩涘埗涓猴細",input,what);for(int j=i+1;j<32;j++)printf("%c",arr[j]);}int main(){while(1){printf("鍗佽繘鍒惰浆浜岃繘鍒--->2\n");printf("鍗佽繘鍒惰浆鍏繘鍒--->8\n");printf("鍗佽繘鍒惰浆鍗佸叚鍒--->16\n璇...
  • 扩展阅读:万能转换器在线转换 ... 10进制转16计算器 ... 在线转换器生成器 ... c语言进制间互相转换 ... 十六进制在线转换器 ... 0-9数字区位码表 ... 二进制对照表大全 ... 十六进制计算在线 ... 十进制算法最简单教程 ...

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