用C语言实现16进制转化为10进制?
C语言程序中,十进制和十六进制实际是互通的。
十六进制数由数字0~9、字母A~F(或a~f)组成。把十六进制数按权展开、相加即得十进制数。
现实中十六进制数和十进制数不可以直接相加,如是在电脑上的话是可以的,何种进制数在电脑上都是以二进制的形式表示的,在电脑编写程序时是可以相加的。
十进制数除base取余法,即十进制数除以base,余数为权位上的数,得到的商值继续除以base,依此步骤继续向下运算直到商为0为止。
扩展资料
十六进制转十进制的源代码如下:
#include<stdio.h>
#include<string.h>
int main(void)
{
char s[20]
hex[20];
int i,j,num;
gets(s);
/*取出字符串中的十六进制字符*/
for(i=0,j=0;s[i]!='\0';i++)
{
hex[j]=s[i];
j++;
}
hex[j]='\0';
printf("Hexadecimal String: ");
puts(hex);
/* 十六进制转十进制 */
num=0;
for(i=0;hex[i]!='\0';i++)
}
printf("Decimal number=%d
",num);
return 0;
}
绛旓細杩欎釜鍑芥暟鐨刬nt HtoD(char *a);灏辨槸灏16杩涘埗鐨勬暟鐢ㄥ瓧绗︽暟缁勪繚瀛橈紝鎶婃暟缁勯鍦板潃浣滀负鍙傛暟浼犻掔粰鍑芥暟锛屽嚱鏁拌繑鍥杞崲鍚庣殑10杩涘埗鏁村瀷鏁板笺傝缁嗚鏄庯紝鎴戝啓鍦ㄥ娉ㄩ噷浜嗭紝浣犵湅浠ュ弬鑰冦俰nclude <stdio.h>#include <string.h>int HtoD(char *a)//灏16杩涘埗鐨勬暟瀛楃敤瀛楃涓蹭繚瀛橈紝骞跺皢瀛楃涓查鍦板潃浣滀负鍙傛暟浼犻...
绛旓細鍙互鐢<stdlib.h> 涓鐨刢har*_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鎿嶄綔绯荤粺涓嬬殑...
绛旓細//灏嗘暟瀛杞负鍗佽繘鍒 for(i=0,j=n-1,sum=0.0;i<n;sum+=num*pow(16,j),i++,j--);printf("Decimal number:%.0f\n",sum);} 鏂规硶浜屻乮nclude<stdio.h> void xtod(int x);//瀹氫箟杞埗鍑芥暟 int main(){ int i;scanf("%x",&i);//杈撳叆涓涓鍗佸叚杩涘埗鏁 xtod(i);//璋冪敤杞埗鍑...
绛旓細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璇█鏄竴闂ㄩ氱敤璁$畻鏈虹紪绋嬭瑷锛...
绛旓細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(((...
绛旓細include<stdio.h>#include<string.h>main(){int i,m,n,s=0,t=1;char a[100],b[100]; gets(a);//鐢ㄥ洖杞﹀垎鍓 scanf("%d%d",&n,&m); //杈撳叆鐨勮繘鍒跺拰鎯宠杞崲鐨勮繘鍒 for(i=strlen(a)-1;i>=0;i--)//鍏杞10杩涘埗 {if(n!=16) s+=(a[i]-48)*t;else s+=(a[i]-55)*...
绛旓細杩欎釜闈炲父绠鍗:include <stdio.h>int main(void){ int var; scanf("%0X", &var);//杈撳叆涓涓16杩涘埗鐨勬暟 printf("%d", var);//灏唙ar浠10杩涘埗杈撳嚭 return 0;}
绛旓細int i, j, n = 0;while(j = i % 10){ n *=10;n += j;} i鏄16杩涘埗鏁 n鏄敱i杞垚10杩涘埗鐨勬暟銆
绛旓細std::cout.unsetf ( std::ios::hex); //c++ 鍙栨秷 16杩涘埗杈撳嚭鏍煎紡 cout << "a=" << a << " b=" << b << endl;printf("hex a=%#x b=%#x \n",a,b); // c 璇█ 16杩涘埗杈撳嚭鏍煎紡 printf("dec a=%d b=%d \n",a,b); // c璇█10杩涘埗杈撳嚭鏍煎紡 return 0;}...
绛旓細y;}void main(){ char a[N]; puts("杈撳叆涓涓鍗佸叚杩涘埗鏁(鍙兘鍚湁0-9,a-f,A-F):"); scanf("%s", a); int b = change(a, strlen(a)); printf("鍏跺搴旂殑鍗佽繘鍒鏁颁负: %d\n", b); getchar(); getchar();}2 杩愯缁撴灉甯屾湜瀵逛綘鏈夊府鍔﹡...