如何用C语言将一个十六进制数字转换为十进制 C语言如何实现十六进制转换成十进制

\u7528c\u8bed\u8a00\u7f16\u5199\u4e00\u4e2a\u5c06\u5341\u516d\u8fdb\u5236\u6570\u8f6c\u6362\u4e3a\u5341\u8fdb\u5236\u6570\u7684\u7a0b\u5e8f

\u76f4\u63a5\u7528printf\u5c31\u53ef\u4ee5\u5b9e\u73b0\u554a02x\u30020\u8868\u793a\u53f3\u5bf9\u9f50\u4e0d\u591f\u7684\u5de6\u8fb9\u88650\uff1b2\u4ee3\u8868\u4ee5\u4e24\u4f4d\u6570\u663e\u793a\uff1bx\u4ee3\u8868\u4ee516\u8fdb\u5236\u663e\u793a
#include
int
main(int
argc,
char*
argv[])
{
int
i=17;
printf("%02x\n",i);
system("pause");
return
0;
}

C\u8bed\u8a00_012_\u5341\u516d\u8fdb\u5236\u8f6c\u5341\u8fdb\u5236

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:int a = 0XFFFF;printf("%d", a);。

3、编译器运行test.cpp文件,此时成功将十六进制数转换为十进制进行了输出。



你可以设置一个字符串数组
char HEX[16] =

以后你得出的数字,比如余数y是10,那么HEX[y]打印出来就是A了

例子(现写的)

int now;
int res[100];//答案
int c = 0;//位数

输入到now;
while (now > 0)
{
res[c] = now % 16;
now = now / 16;
c++;
}

输出是:
for (i = 0; i < c; i++)
{
输出 HEX[res[i]];
}

算法的精髓都给你啦,好好理解吧
/**********************************************

**************** 补充 *****************

**********************************************/

改你的代码

#include "stdio.h"
void main()
{
char HEX[16] = ; //<----------------这里加了
int num;
printf("请输入一个十进制整数:");
scanf("%d",&num);

int a[10]; //<----------------这里改了
int i=0;
int yushu;
while(num>0)
{
yushu=num%16;
a[i]=yushu;
num=num/16;
i++;/*关键的就在这里,这后面书上写的要用SWITCH,但是我用不好,请各位大虾指教*/

}

printf("转化为十六进制的数为:");
for(;i>=0;i--)//倒序输出
{
printf("%c",HEX[a[i]]); //<----------------这里改了

}
printf("\n");
}


你将那个十六进制的数字赋值给一个int型的变量,就直接转化为int型的了。
如果用程序实现这个功能是不用的 计算机会直接转换的。

另外 输出的时候可以控制输出格式。
要注意下C语言的int型的阀值,不要越界。

你把这个数字直接%d输出就是十进制的
比如你int ival = 0xFFFF;
int jval = ival;
jval 也就是等于你说的那个65535 不要转换啊,他们表示的就是一个数字

没心情写,给个思路好了。
先转为字串,得字串长度n,然后按
h(n)*16^n+h(n-1)*16^(n-1)+....求和。

要是老师不看过程,可按楼上的。

  • 濡備綍鐢–璇█灏嗕竴涓崄鍏繘鍒舵暟瀛杞崲涓哄崄杩涘埗
    绛旓細浣犲彲浠ヨ缃涓涓瀛楃涓叉暟缁刢har HEX[16] = 浠ュ悗浣犲緱鍑虹殑鏁板瓧,姣斿浣欐暟y鏄10,閭d箞HEX[y]鎵撳嵃鍑烘潵灏辨槸A浜嗕緥瀛(鐜板啓鐨)int now;int res[100];//绛旀int c = 0;//浣嶆暟杈撳叆鍒皀ow;while (now > 0){ res[c] = now % 16; now = now / 16; c++;}杈撳嚭鏄:for (i = 0; i < c; i++){ 杈撳嚭H...
  • 濡備綍鐢–璇█灏嗕竴涓崄鍏繘鍒舵暟瀛杞崲涓哄崄杩涘埗
    绛旓細1銆侀鍏堬紝鎵撳紑C璇█缂栬瘧鍣紝鏂板缓涓涓鍒濆.cpp鏂囦欢锛屼緥濡傦細test.cpp銆2銆佸湪test.cpp鏂囦欢涓紝杈撳叆C璇█浠g爜锛歩nt a = 0XFFFF;printf("%d", a);銆3銆佺紪璇戝櫒杩愯test.cpp鏂囦欢锛屾鏃舵垚鍔灏嗗崄鍏繘鍒舵暟杞崲涓哄崄杩涘埗杩涜浜嗚緭鍑恒
  • 鐢╟璇█濡備綍灏嗗崄鍏繘鍒杞垚鍗杩涘埗鏁?
    绛旓細C璇█绋嬪簭涓紝鍗佽繘鍒跺拰鍗佸叚杩涘埗瀹為檯鏄簰閫氱殑銆鍗佸叚杩涘埗鏁扮敱鏁板瓧0~9銆佸瓧姣岮~F锛堟垨a~f锛夌粍鎴愩傛妸鍗佸叚杩涘埗鏁版寜鏉冨睍寮銆佺浉鍔犲嵆寰楀崄杩涘埗鏁銆傜幇瀹炰腑鍗佸叚杩涘埗鏁板拰鍗佽繘鍒舵暟涓嶅彲浠ョ洿鎺ョ浉鍔狅紝濡傛槸鍦ㄧ數鑴戜笂鐨勮瘽鏄彲浠ョ殑锛屼綍绉嶈繘鍒舵暟鍦ㄧ數鑴戜笂閮芥槸浠ヤ簩杩涘埗鐨勫舰寮忚〃绀虹殑锛屽湪鐢佃剳缂栧啓绋嬪簭鏃舵槸鍙互鐩稿姞鐨勩傚崄杩涘埗鏁...
  • 浣跨敤C璇█灏嗕竴涓崄鍏繘鍒舵暟瀛杞崄杩涘埗?
    绛旓細sscanf鍑芥暟鍙互鐩存帴浠庡瓧绗︿覆涓壂鎻鍗佸叚杩涘埗鏁锛歩nclude <stdio.h> int main(int argc, char *argv[]) { char hex[1024] = { 0 };int result = 0;scanf("%s", hex);sscanf(hex, "%x", &result);printf("%d\n", result);return 0;} ...
  • C璇█缂栧啓绋嬪簭濡備綍浠ュ瓧绗﹀舰寮忚緭鍏涓涓崄鍏繘鍒舵暟,灏嗗叾鍙樻崲鎴愪竴涓崄杩 ...
    绛旓細浠庨敭鐩樿緭鍏ヤ竴涓笉瓒呰繃8浣嶇殑姝g殑鍗佸叚杩涘埗鏁板瓧绗︿覆锛屽皢瀹冭浆鎹负姝g殑鍗佽繘鍒舵暟鍚庤緭鍑銆傛敞锛氬崄鍏繘鍒舵暟涓殑10~15鍒嗗埆鐢ㄥぇ鍐欑殑鑻辨枃瀛楁瘝A銆丅銆丆銆丏銆丒銆丗琛ㄧず銆傛牱渚嬭緭鍏 FFFF 鏍蜂緥杈撳嚭 65535 鎬濊矾锛氭劅瑙夎嚜宸辩殑涓嬮潰涓や釜鏂规硶閮藉 鏂规涓锛氭柟妗堜簩锛
  • C璇█濡備綍瀹炵幇鍗佸叚杩涘埗杞崲鎴愬崄杩涘埗
    绛旓細C璇█瀹炵幇鍗佸叚杩涘埗杞崲鎴愬崄杩涘埗濡備笅锛氫緥濡灏嗗崄鍏繘鍒舵暟瀛 9FA8C 杞崲鎴愬崄杩涘埗锛9FA8C = 9脳164 + 15脳163 + 10脳162 + 8脳161 + 12脳160 = 653964锛堝崄杩涘埗锛夈備粠鍙冲線宸︾湅锛岀1浣嶇殑浣嶆潈涓 160=1锛岀2浣嶇殑浣嶆潈涓 161=16锛岀3浣嶇殑浣嶆潈涓 162=256锛岀4浣嶇殑浣嶆潈涓 163=4096锛岀5浣嶇殑...
  • C璇█,缂栧啓涓涓绋嬪簭,灏0鍒15涔嬮棿鐨鏁板瓧浣滀负鐢ㄦ埛杈撳叆,骞跺皢鍏惰浆鎹负+绛夋晥...
    绛旓細涓嬮潰鏄涓涓灏0鍒15涔嬮棿鐨勬暟瀛楄浆鎹负绛夋晥鐨鍗佸叚杩涘埗鏁板瓧鐨C璇█绋嬪簭绀轰緥锛歩nclude <stdio.h> int main(){ int decimal;printf("璇疯緭鍏ヤ竴涓0鍒15涔嬮棿鐨勬暟瀛楋細");scanf("%d", &decimal);switch(decimal){ case 0:printf("绛夋晥鐨勫崄鍏繘鍒舵暟瀛椾负 0x0\n");break;case 1:printf("绛夋晥鐨勫崄鍏繘鍒...
  • C璇█濡備綍鎶婁竴涓崄鍏繘鍒舵暟杞崲涓轰簩杩涘埗鏁扮粍杈撳嚭
    绛旓細妤间笅鐨勭▼搴忓簲璇ユ槸灏16杩涘埗杞寲涓10杩涘埗鏁扮粍锛屽皢鍏舵敼杩涗竴涓嬪嵆鍙紝涔熷氨鏄姞涓婂皢鍗佽繘鍒惰浆鎹负浜岃繘鍒剁殑绋嬪簭娈碉細鍏ㄧ▼搴忓涓嬶細include <stdio.h> void main({ int i;int m = 0;char c[10];char *r;scanf("%s",c);if(c[0]!='0'&&c[1]!='x'&&c[1]!='X')/*鍒ゆ柇鏄笉鏄鍗佸叚杩涘埗鏁*...
  • C璇█鎬庝箞鎶16杩涘埗鏁颁竴涓竴涓鏀惧埌鏁扮粍閲?
    绛旓細include <stdio.h> int main(){ int i,a[8];for(i=0;i<8;++i)scanf("%1x",&a[i]);for(i=0;i<8;++i)printf("%x ",a[i]);return 0;}
  • 鐢–璇█缂栧啓涓涓鍑芥暟瀹炵幇鍗佸叚杩涘埗鏁鑷冲崄杩涘埗鏁扮殑杞崲.鍦ㄤ富鍑芥暟涓緭鍏ュ崄...
    绛旓細HEX_DEC(num/N,N);} printf("%d",num%N);} void main(){ int num;printf("杈撳叆涓涓崄鍏繘鍒剁殑鏁\n");scanf("%x",&num);printf("鐩存帴鐢%%d杈撳嚭:%d\n",num);printf("鐢ㄥ嚱鏁拌緭鍑:");HEX_DEC(num,10);//杞崲鎴愬嚑杩涘埗灏辨妸绗簩涓弬鏁版崲鎴愬嚑 printf("\n");system("pause");} ...
  • 扩展阅读:十六进制转换计算器 ... 十六进制表格 ... 十六进制计算在线 ... 进制转换器 ... 8位拨码开关地址对照表 ... c语言输入十六进制数 ... 十六进制在线转换查询 ... 十六进制转换为十进制 ... 十六进制数怎么表示c语言 ...

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