c语言16进制转换为10进制数的函数、 求c语言将十进制数转换为16进制的函数

c\u8bed\u8a0016\u8fdb\u5236\u8f6c\u6362\u4e3a10\u8fdb\u5236\u6570\u7684\u51fd\u6570\u662f\u4ec0\u4e48\uff1f

1\u3001\u53ef\u4ee5\u6839\u636e16\u8fdb\u5236\u8f6c10\u8fdb\u5236\u7684\u7b97\u6cd5\uff08\u5373\u5404\u4f4d\u4f4d\u7801\u503c\u4e58\u4ee5\u4f4d\u6743\u4e4b\u548c\uff09\u6765\u5b9e\u73b0\u8be5\u529f\u80fd\u30022\u3001\u5177\u4f53\u5b9e\u73b0\u65b9\u6cd5\u53ef\u4ee5\u53c2\u8003\u5982\u4e0b\u7a0b\u5e8f\uff1a
#include void main(){ int he; int re=0; // \u4fdd\u5b58\u8f6c\u6362\u4e3a10\u8fdb\u5236\u7684\u7ed3\u679c int k=16; // 16\u8fdb\u5236 int n=1; // \u4f4d\u6743 scanf("%d", &he); // \u63a5\u6536\u7528\u6237\u8f93\u5165\u768416\u8fdb\u5236\u6570\uff0c\u4e0d\u542b0x\u524d\u7f00 while(he != 0) { re += (he%10)*n; // \u53d6\u51fa\u5404\u4f4d\u4f4d\u7801\u503c\uff0c\u5e76\u4e58\u4ee5\u5bf9\u5e94\u7684\u4f4d\u6743\u503c he /= 10; // \u53bb\u638916\u8fdb\u5236\u6570\u7684\u6700\u4f4e\u4f4d\uff0c\u6b21\u4f4e\u4f4d\u53d8\u4e3a\u6700\u4f4e\u4f4d n *= k; // \u4f4d\u6743\u4e58\u4ee516 } printf("%d",re); // \u8f93\u51fa\u8f6c\u6362\u540e\u7684\u7ed3\u679c}

1\u3001\u53ef\u4ee5\u6839\u636e16\u8fdb\u5236\u8f6c10\u8fdb\u5236\u7684\u7b97\u6cd5\uff08\u5373\u5404\u4f4d\u4f4d\u7801\u503c\u4e58\u4ee5\u4f4d\u6743\u4e4b\u548c\uff09\u6765\u5b9e\u73b0\u8be5\u529f\u80fd\u3002
2\u3001\u5177\u4f53\u5b9e\u73b0\u65b9\u6cd5\u53ef\u4ee5\u53c2\u8003\u5982\u4e0b\u7a0b\u5e8f\uff1a
#include
void main()
{int he;
int re=0; // \u4fdd\u5b58\u8f6c\u6362\u4e3a10\u8fdb\u5236\u7684\u7ed3\u679c
int k=16; // 16\u8fdb\u5236
int n=1; // \u4f4d\u6743
scanf("%d", &he); // \u63a5\u6536\u7528\u6237\u8f93\u5165\u768416\u8fdb\u5236\u6570\uff0c\u4e0d\u542b0x\u524d\u7f00
while(he != 0)
{ re += (he%10)*n; // \u53d6\u51fa\u5404\u4f4d\u4f4d\u7801\u503c\uff0c\u5e76\u4e58\u4ee5\u5bf9\u5e94\u7684\u4f4d\u6743\u503c
he /= 10; // \u53bb\u638916\u8fdb\u5236\u6570\u7684\u6700\u4f4e\u4f4d\uff0c\u6b21\u4f4e\u4f4d\u53d8\u4e3a\u6700\u4f4e\u4f4d
n *= k; // \u4f4d\u6743\u4e58\u4ee516 }
printf("%d",re); // \u8f93\u51fa\u8f6c\u6362\u540e\u7684\u7ed3\u679c}

\u6269\u5c55\u8d44\u6599
int sw1016(unsigned int a,char *p)
{
unsigned int mask=0x80000000;
int t=0;
int k=0;
int sum=0;
int c=2;
*(p+0)='0';
*(p+1)='X';
*(p+10)='\0';
for(k=0;k<8;k++)
{
for(t=0;t<4;t++)
{
if((a&mask)==mask)
{
sum=sum*2+1;
}
else
{
sum=sum*2+0;
}
a=a<<1;
}
if(sum<10)
p[c]=sum+'0';
else
p[c]='a'+sum-10;
sum=0;
c++;
}
return 0;
}
int main()
{
unsigned int in=486256;
char p[11];
sw1016(in,p);
printf("xen:%s",p);
}
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1 \u5341\u516d\u8fdb\u5236\u81f3\u5341\u8fdb\u5236\u8f6c\u6362

1、可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。
2、具体实现方法可以参考如下程序:

#include <stdio.h>
void main()
{
     int he;    
     int re=0;   // 保存转换为10进制的结果
     int k=16;   // 16进制
     int n=1;    // 位权
     scanf("%d", &he);  // 接收用户输入的16进制数,不含0x前缀
     while(he != 0)  
     {
         re += (he%10)*n;  // 取出各位位码值,并乘以对应的位权值
         he /= 10;   // 去掉16进制数的最低位,次低位变为最低位
         n *= k;     // 位权乘以16
     }
     printf("%d",re); // 输出转换后的结果
}


#include <stdio.h>

void main()

{

 int x;

 scanf("%x",&x);

 printf("%d
",x);

}

直接输入4位16进制数,中间不能加空格。



1、可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。

2、例程:

#include <stdio.h>
void main()
{
     int he;    
     int re=0;   // 保存转换为10进制的结果
     int k=16;   // 16进制
     int n=1;    // 位权
     scanf("%d", &he);  // 接收用户输入的16进制数,不含0x前缀
     while(he != 0)  
     {
         re += (he%10)*n;  // 取出各位位码值,并乘以对应的位权值
         he /= 10;   // 去掉16进制数的最低位,次低位变为最低位
         n *= k;     // 位权乘以16
     }
     printf("%d",re); // 输出转换后的结果
}


0xa513
16^3*10 + 16^2*5 + 16^1*1 + 16^0*3
所有进制转化为10进制都是一样的,每一位乘以对应位的权值再相加。
权值就是进制的N次方,最低位为0次,依次递增

#include<iostream.h>
#include<math.h>
int func( int x)
{
int sum = 0;
for(int i = 0 ; x!= 0; i++)
{
sum = (x %16) * pow(16,i)+ sum;
x = x/ 16;
}
return sum;
}
void main()
{
int x = 0x10;
int y = func(x);
cout<<y<<endl; // 用十进制输出y;
cout<<hex<<x<<" "<<endl;//用十六进制输出x

}

  • 鐢C璇█灏16杩涘埗鏁拌浆鍖栦负10杩涘埗鏁 16杩涘埗鏁颁互瀛楃涓插舰寮忚緭鍏 鏈濂借繍鐢...
    绛旓細鐢╥toa鍑芥暟锛堥渶瑕乻tdlib.h澶存枃浠讹級锛屽亣濡傝鎶奱瀛樿繘瀛楃鏁扮粍str[]涓紝鍒欒繖鏍锋搷浣渋toa(a, str, 16)銆傜涓変釜鍙傛暟鏄繘鍒舵暟銆傚鏋滀綘瑕佺敤浠g爜瀹炵幇锛岄偅鎴戝氨鍐欎釜鍑芥暟缁欎綘鍚э細include <stdio.h> const char HexNum[] = "0123456789ABCDEF";void subDecToHex(int dec, char *&str){if(!dec) return...
  • c璇█鍗佸叚杩涘埗杞崄杩涘埗鏂规硶
    绛旓細鍙互鐢<stdlib.h> 涓殑char*_itoa(intvalue,char*string,intradix);鎶婃暣鍨杞崲涓鍏朵粬杩涘埗鐨勫瓧绗︿覆鍙傝冧唬鐮侊細int main(){int a=110;char p;_itoa(110,p,16); //16琛ㄧず16杩涘埗,杩樺彲浠ョ敤2銆8銆10printf("%s",p);return 0;} GCC锛孏NU缁勭粐寮鍙戠殑寮婧愬厤璐圭殑缂栬瘧鍣紝MinGW锛學indows鎿嶄綔绯荤粺涓嬬殑...
  • C璇█ 鍐欎竴涓嚱鏁 杈撳叆涓涓鍗佸叚杩涘埗鏁 杈撳嚭鐩稿簲鐨鍗佽繘鍒
    绛旓細case'F':num[j++]=15;break;default:num[j++]=(int)(arr-'0');break;} } for(i=n-1;i>=0;i--)sum+=num*pow(16,n-1-i);printf("杞崲缁撴灉:\n%d",sum);} int main(){ char arr[10];printf("璇疯緭鍏鍗佸叚杩涘埗鏁:\n");gets(arr);conver(arr);return 0;} ...
  • C璇█鍗佸叚杩杞崲10杩涘埗
    绛旓細2 16杩涘埗 杞负10杩涘埗锛屽悇涓綅渚濇涔1 16 256 4096 杩欓噷鍙湁鏈楂樹綅涓1锛 浜庢槸缁撴灉灏辨槸4096 3 269 杞负16杩涘埗锛屼緷娆¢櫎16鍙栦綑 269/16=16 鈥︹ 13 鍗0xD 16/16 = 1 鈥︹ 0 1/16=0 鈥︹1 鍙嶅悜鍙栦綑鏁帮紝10D 4 8浣嶈〃绀烘湁绗﹀彿鏁帮紝鏈楂樹綅鏄鍙蜂綅锛屾暟鎹湁7浣 鑼冨洿灏辨槸 -2^7 ~ 2^7...
  • 16杩涘埗鏁拌浆鎹㈡垚10杩涘埗
    绛旓細绗2浣嶏細A*16^2=10*16^2=2560 绗3浣嶏細2*16^3=8192缁 鏋滃氨鏄細5*16^0+15*16^1+10*16^2+2*16^3=10997 渚2锛欳E鎹㈢畻鎴10杩涘埗锛氱0浣嶏細E*16^0=14*16^0=14 绗1浣嶏細C*16^1=12*16^1=192 缁撴灉灏辨槸锛14*16^0+12*16^1=206 杩涘埗杞崲鐨勭悊璁 1銆 浜岃繘鍒舵暟銆鍗佸叚杩涘埗鏁拌浆鎹负...
  • C璇█16杩涘埗杞崄杩涘埗
    绛旓細printf("%x",0xff/10); // 杈撳嚭19 printf("%b",0xff/10); // 杈撳嚭25 浣嗘槸濡傛灉浣犳墍寰楀埌鐨16杩涘埗鏁鏄瓧绗︿覆鏍煎紡鐨勶紝姣斿 char hex_num[]="ff";閭e彲鑳藉氨楹荤儲涓鐐癸紝闇瑕侀愪綅鍔犺捣鏉ャ傛垜涓嶆竻妤C璇█閲屾湁娌℃湁杩欑鍑芥暟锛屼絾鏄繖鏍风殑鍑芥暟鍐欒捣鏉ヤ篃涓嶉毦鍚с備笅闈㈣繖涓槸鍗曞瓧绗︾殑杞崲銆傚瀛楃鐨...
  • C璇█:16杩涘埗杞10杩涘埗(鏈濂藉府蹇欐壘鍑哄師绋嬪簭閿欒)
    绛旓細; //杈撳叆鐨勮繘鍒跺拰鎯宠杞崲鐨勮繘鍒 for(i=strlen(a)-1;i>=0;i--)//鍏堣浆10杩涘埗 {if(n!=16) s+=(a[i]-48)*t;else s+=(a[i]-55)*t;t*=n;}for(i=0;s;i++)//10杩涘埗杞浣犳兂瑕佺殑杩涘埗 {if(s%m>=10)b[i]=s%m+55;else b[i]=s%m+48;s/=m; } b[i]='\0';...
  • C璇█涓 0x00000001 0x00000002 0x00000004 杞崲鎴10杩涘埗鍒嗗埆鏄灏
    绛旓細鍗佸叚杩涘埗鏁0x00000001杞崲鎴10杩涘埗涓猴紝鍗00000001锛1锛16锛0锛16H銆傚崄鍏繘鍒舵暟0x00000002杞崲鎴10杩涘埗涓猴紝鍗00000002锛2锛16锛0锛2H銆傚崄鍏繘鍒舵暟0x00000004杞崲鎴10杩涘埗涓猴紝鍗00000004锛4锛16锛0锛4H銆傚崄鍏繘鍒舵暟杞崲鎴愬崄杩涘埗鏁浣跨敤"鎸夋潈鐩稿姞"娉曪紝鎶婂崄鍏繘鍒舵暟棣栧厛鍐欐垚鍔犳潈绯绘暟灞曞紑寮忥紝鐒跺悗鎸夊崄杩涘埗鍔犳硶...
  • 16杩涘埗杞10杩涘埗(C璇█)
    绛旓細case 'C':case 'D':case 'E':case 'F': /*璁$畻缁撴灉*/ if(precision != -1)precision++;result[j] = result[j] * RADIX +(source[i]-'A'+10);break;default: /*缁撴灉鏈変袱绉嶆儏鍐甸浂鐨勬儏鍐甸渶瑕侀澶栧垽鏂*/ if(precision != -1)result[j] /= pow(float(RADIX),precision);if(((...
  • C璇█闂,16杩涘埗杞崲鍒10杩涘埗,姹傛濊矾
    绛旓細16杩涘埗灏辨槸 閫16杩1锛屽叾瀹炶窡10杩涘埗鏄涓涓亾鐞嗐傚彧鏄1鍒9鍙兘琛ㄧず9涓鏁板瓧 鎵浠ョ敤A琛ㄧず10 鍚岀悊 B鏄11锛C鏄12锛孌鏄13 锛孍鏄14锛孎鏄15 涓涓鍗佸叚杩涘埗閫氬父浠ュ墠缂0x 鎴0X寮澶淬備緥濡0xabcd 杞崲10杩涘埗 鍗充负 d*16^0+c*16^1+b*16^2+a*16^3 = 13+12*16+11*16^2+10*16^3 ...
  • 扩展阅读:16进制在线转换器 ... 16进制计算器在线计算 ... 16转10进制计算器 ... c语言8进制转10怎么算 ... 10 16 化成10进制 ... 1-100二进制对照表 ... 16转10进制在线转换 ... 16进制在线转换工具 ... 16进制数如何转成10进制c ...

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