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位的位权为 164=65536 …… 第n位的位权就为 16n-1。

将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方。

所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

再例如:十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)。



扩展资料:

C语言10进制转16进制

把十进制的数不停除以16的余数按从右到左的顺序排起来就是16进制,例如:55/16=0余5例如100 100/16=6余4 6/16余6,所以就是64,再例如1000 1000/16=62余8 62/16=3余12 3/16余3所以结果是3C8 //。

对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。

参考资料来源:百度百科-十六进制至十进制转换-十六进制--->十进制






  • C璇█涓 濡備綍璁鍗佸叚杩涘埗杞崄杩涘埗
    绛旓細include<stdio.h> int main(){ int i;int num=0;char c[100];printf("鍗佸叚杩涘埗杞崲鍗佽繘鍒:璇疯緭鍏ヤ竴涓插崄鍏繘鍒舵暟\n");scanf("%s",c);num = 0;for(i = 0; c[i] != 0 ;i++){ if(c[i]<'0' && c[i]>'F'){ printf("杈撳叆閿欒\n");return 0;} else if(c[i]<='9'...
  • 浣跨敤C璇█灏嗕竴涓鍗佸叚杩涘埗鏁板瓧杞崄杩涘埗?
    绛旓細sscanf鍑芥暟鍙互鐩存帴浠庡瓧绗︿覆涓壂鎻鍗佸叚杩涘埗鏁帮細include <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璇█涓浣曞皢16杩涘埗瀛楃涓杞寲鎴10杩涘埗鏁存暟?
    绛旓細1銆佽緭鍏ュ瓧绗︿覆 3銆佸弽杞瓧绗︿覆锛屽苟璧嬬粰瀛楃涓叉暟缁凙 2銆佸惊鐜娴嬫暟缁凙锛屼緷娆℃娴1姣忎釜瀛楃 5銆佸垽鏂綋鍓嶆娴嬬殑瀛楃锛屽鏋滃睘浜嶢BCDEF锛屽垯渚濇鎶夾BCDEF 杞崲涓11...16,鍚﹀垯涓嶅仛浠讳綍鎿嶄綔 6銆佺疮鍔狅紝褰撳墠寰幆娆℃暟鐨16娆℃柟涔樹互褰撳墠瀛楃鐨勬暟鍊煎ぇ灏忋7銆佽緭鍑烘荤疮鍔犲煎氨鏄10杩涘埗鏁存暟 ...
  • C璇█ 鍐欎竴涓嚱鏁 杈撳叆涓涓鍗佸叚杩涘埗鏁 杈撳嚭鐩稿簲鐨鍗佽繘鍒
    绛旓細include<string.h> include<math.h> / 鍑芥暟锛歝onvert 鍔熻兘锛鍗佸叚杩涘埗杞崄杩涘埗 / void conver(char arr[]){ int i,j=0,k=0,sum=0,n=strlen(arr);int num[100];for(i=0;i<n;i++){ switch(arr){ case'A':num[j++]=10;break;case'B':num[j++]=11;break;case'C':num[j++]...
  • 鐢C璇█缂栧啓涓涓嚱鏁瀹炵幇鍗佸叚杩涘埗鏁拌嚦鍗佽繘鍒鏁扮殑杞崲.鍦ㄤ富鍑芥暟涓緭鍏ュ崄...
    绛旓細void HEX_DEC(int num,int N){ if(num>N-1){ 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);//杞崲鎴鍑犺繘鍒跺氨鎶婄浜...
  • C璇█濡備綍鍐鍗佸叚杩涘埗杞崄杩涘埗鐨勭▼搴?
    绛旓細杩欎釜闈炲父绠鍗:include <stdio.h>int main(void){ int var; scanf("%0X", &var);//杈撳叆涓涓16杩涘埗鐨勬暟 printf("%d", var);//灏唙ar浠10杩涘埗杈撳嚭 return 0;}
  • c璇█鎬庝箞鏍灏嗕竴涓鍗佸叚杩涘埗杞寲鎴愬崄杩涘埗
    绛旓細渚嬪2a4鐩稿綋浜200+a0+4 鍗2*16^2+a*16^1+4*16^0=676 灏卞ソ鍍忎簩杩涘埗杞寲涓哄崄杩涘埗涓鏍 渚嬪111001鐩稿綋浜100000+10000+1000+1 鍗1*2^5+1*2^4+1*2^3+1*2^0=57
  • 鍗佸叚杩涘埗杞崄杩涘埗c璇█浠g爜
    绛旓細杩欓噷绋嬪簭璁捐浠庢帶鍒跺彴杈撳叆鍗佸叚杩涘埗鏁颁负瀛楃涓插舰寮忥紝杞崲涓哄崄杩涘埗鐨刲ong鍨嬨傛瘮杈冪畝鍗曪紝娌℃湁鑰冭檻姝h礋鍙凤紝灏忔暟绛夈俰nclude<stdio.h> long fun(char *s);int main(){ long m;char s[50];scanf("%s",s);m=fun(s);printf("%ld\n",m);return 0;} long fun(char *s){ int i,t;long sum=...
  • c璇█缂栫▼:鍗佸叚杩涘埗鏁存暟杞崄銆佸叓銆佷簩杩涘埗
    绛旓細include<stdio.h> void dec2bin(int n,int i){if(i>1)dec2bin(n/2,i-1);printf("%d",n%2);} int main(){int n;scanf("%x",&n);printf("%d %o ",n,n);dec2bin(n,32);return 0;}
  • c璇█鍗佸叚杩涘埗杞崄杩涘埗鐨勭畻娉鎬庝箞鍐
    绛旓細.2杩涘埗鍏繘鍒跺拰鍗佸叚杩涘埗鍒10杩涘埗锛氫粠2杩涘埗鍏繘鍒跺拰鍗佸叚杩涘埗鏁扮殑鏈浣庝綅锛堟渶鍙崇绗琻=1浣嶏級锛屼緷娆″皢涔樹互杩涘埗鏁扮殑n-1娆℃柟鐩稿姞 渚嬪锛氫簩杩涘埗鏁11010杞崄杩涘埗 锛堟垜鐢╩^n琛ㄧずm鐨刵娆℃柟锛0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 + 1*2^4=26锛涘叓杩涘埗鏁20杞崄杩涘埗 0*8^0+2*8^1=16;鎵浠...
  • 扩展阅读:万能转换器在线转换 ... 十六进制计算在线 ... 六进制对照表 ... c语言设置十六进制 ... 十六进制在线转换器 ... 十六进制转换计算器 ... 十六进制编程软件 ... c语言怎么写十六进制 ... c语言进制数互相转换代码 ...

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