如何把16进制数转化为10进制,c语言编写 c语言中如何将16进制字符串转化成10进制整数?

\u5982\u4f55\u7528C\u8bed\u8a00\u5c06\u4e00\u4e2a\u5341\u516d\u8fdb\u5236\u6570\u5b57\u8f6c\u6362\u4e3a\u5341\u8fdb\u5236

\u9700\u8981\u51c6\u5907\u7684\u6750\u6599\u5206\u522b\u6709\uff1a\u7535\u8111\u3001C\u8bed\u8a00\u7f16\u8bd1\u5668\u3002
1\u3001\u9996\u5148\uff0c\u6253\u5f00C\u8bed\u8a00\u7f16\u8bd1\u5668\uff0c\u65b0\u5efa\u4e00\u4e2a\u521d\u59cb.cpp\u6587\u4ef6\uff0c\u4f8b\u5982\uff1atest.cpp\u3002

2\u3001\u5728test.cpp\u6587\u4ef6\u4e2d\uff0c\u8f93\u5165C\u8bed\u8a00\u4ee3\u7801\uff1aint a = 0XFFFF;printf("%d", a);\u3002

3\u3001\u7f16\u8bd1\u5668\u8fd0\u884ctest.cpp\u6587\u4ef6\uff0c\u6b64\u65f6\u6210\u529f\u5c06\u5341\u516d\u8fdb\u5236\u6570\u8f6c\u6362\u4e3a\u5341\u8fdb\u5236\u8fdb\u884c\u4e86\u8f93\u51fa\u3002

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

16进制数转10进制数原理:

某16进制数共n位,第n位表示为Xn。转换后的10进制数表示为Y。

Y = Xn×16^0 + Xn-1×16^1 + Xn-2×16^2 + …… + X1×16^n-1。

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

/* 任意进制数转十进制数 */
/* char *value : 其他进制数 */
/* int *result : 转换后的十进制数 */
/* int radix : 待转换的进制*/
void others2Decimal (char *value, int *result, int radix) { 
int digit,i,j;

*result = 0;
for (i=strlen(value)-1,j=0; i>=0; i--,j++) {
if (value[i]>='0' && value[i]<='9')
digit = value[i]-'0';
if (value[i]>='a' && value[i]<='z')
digit = value[i]-'a'+10;
if (value[i]>='A' && value[i]<='Z')
digit = value[i]-'A'+10;
*result += digit*pow(radix,j);
}
}

int main (void) {
char *value;
int radix=16,result;

printf ("请输入16进制数:");
    gets (value);
    putchar ('
');
    puts ("================================================================
");
    
    printf ("10进制转换结果:"); 
others2Decimal (value,&result,radix);
printf ("%d
",result);
putchar ('
');

getch (); /*屏幕暂留*/
return 0;
}

运行结果



可以用<stdlib.h> 中的char*_itoa(intvalue,char*string,intradix);把整型转换为其他进制的字符串参考代码:
#include<stdio.h>
#include<stdlib.h> //包含_itoa的头文件

int main()
{
int a=110;
char p[20];
_itoa(110,p,16); //16表示16进制,还可以用2、8、10
printf("%s",p);
return 0;
}

#include <stdio.h>
#include <string.h>
#include <math.h>
int main() {
    char *Hex = "27c";
    int i, Dec = 0, t = 0;
    for (i = 0; i < strlen(Hex); i++){
        switch (Hex[i]){
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
            t = (int)Hex[i] - 48;
            break;
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
            t = (int)Hex[i] - 87;
        default:
            puts("Error");
        }
        Dec += t * pow(16, strlen(Hex) - i - 1);
    }
    printf ("%d", Dec);
    return 0;
}


  • 16杩涘埗杞10杩涘埗鎬庝箞杞?
    绛旓細鍗佸叚杩涘埗鎬庝箞杞崄杩涘埗鏂规硶濡備笅锛1銆佺‘瀹氬崄鍏繘鍒舵暟鐨勫悇涓綅鏁扮殑鏉冨硷紝浠庡彸鍒板乏渚濇涓16鐨0娆℃柟銆16鐨1娆℃柟銆16鐨2娆℃柟锛屼互姝ょ被鎺ㄣ2銆佸皢姣忎綅涓婄殑鍗佸叚杩涘埗鏁板瓧涔樹互瀵瑰簲鐨勬潈鍊笺3銆佸皢涓婁竴姝ュ緱鍒扮殑缁撴灉鐩稿姞锛屽緱鍒版渶缁堢殑鍗佽繘鍒舵暟銆傛暟鎹瓨鍌ㄥ拰澶勭悊锛氳绠楁満绯荤粺涓父鐢ㄧ殑鏁板埗鏄簩杩涘埗锛屼絾鏄湪缂栫▼鍜屾暟鎹鐞...
  • 16杩涘埗鎬庝箞杞负10杩涘埗.
    绛旓細鏂规硶锛16杞10 16杩涘埗鏁鐨勭0浣嶇殑鏉冨间负16鐨0娆℃柟锛岀1浣嶇殑鏉冨间负16鐨1娆℃柟锛岀2浣嶇殑鏉冨间负16鐨2娆℃柟鈥︹︽墍浠ワ紝鍦ㄧN锛圢浠0寮濮嬶級浣嶄笂锛屽鏋滄槸鏄暟 X 锛圶 澶т簬绛変簬0锛屽苟涓擷灏忎簬绛変簬 15锛屽嵆锛欶锛夎〃绀虹殑澶у皬涓 X * 16鐨凬娆℃柟銆備緥锛2AF5鎹㈢畻鎴10杩涘埗:鐢ㄧ珫寮忚绠楋細绗0浣嶏細 5 * 16^0 ...
  • 鍗佸叚杩涘埗杞崲鎴愬崄杩涘埗鎬庝箞杞?
    绛旓細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 杞崲鏂规硶:鍗佽繘鍒跺寲涓鍗佸叚杩涘埗 鏂规硶1锛氶噰鐢ㄩ櫎16鍙栦綑娉曘備緥锛灏嗗崄杩涘埗鏁115杞寲涓鍏繘鍒舵暟 16| 115鈥︹ 3 16| 7 鈥︹ 7 缁撴灉锛氾紙115锛10 = 锛73锛16 鏂规硶2锛氬厛灏嗗崄杩涘埗鍖栦负浜岃繘鍒讹紝鍐...
  • 鍗佸叚杩涘埗濡備綍杞寲涓哄崄杩涘埗?
    绛旓細16杩涘埗鏁鐨勭0浣嶇殑鏉冨间负16鐨0娆℃柟锛岀1浣嶇殑鏉冨间负16鐨1娆℃柟锛岀2浣嶇殑鏉冨间负16鐨2娆℃柟鈥︽墍浠ワ紝鍦ㄧN锛圢浠0寮濮嬶級浣嶄笂锛屽鏋滄槸鏄暟 X 锛圶 澶т簬绛変簬0锛屽苟涓擷灏忎簬绛変簬 15锛屽嵆锛欶锛夎〃绀虹殑澶у皬涓 X * 16鐨凬娆℃柟銆杩涘埗杞崲琛細渚嬶細2AF5鎹㈢畻鎴10杩涘埗:鐢ㄧ珫寮忚绠楋細绗0浣嶏細 5 * 16^0 = 5...
  • 濡備綍灏嗗崄鍏繘鍒舵暟杞崲涓哄崄杩涘埗鏁?
    绛旓細鐩存帴闄16锛屽弽鍚戝彇浣欍傚52杞崲鎴16杩涘埗銆52/16=3鈥︹4锛屼綑鏁颁负4锛涙帴鐫3/16=0鈥︹3銆傛墍浠ヨ浆鎹㈢殑缁撴灉涓34H銆傚湪姣斿鎶60536杞崲鎴16杩涘埗銆60536/16=3783鈥︹8锛3783/16=236鈥︹7锛236/16=14鈥︹12锛12瀵瑰簲16杩涘埗鐨凜锛14/16=0鈥︹14锛14瀵瑰簲16杩涘埗鐨凟锛屾墍浠ユ渶缁堣浆鎹㈢粨鏋滀负EC78銆
  • 16杩涘埗鎬庝箞杞崲鎴10杩涘埗?
    绛旓細16杩涘埗杞崲10杩涘埗鐨勬柟娉曪細 16杩涘埗灏辨槸閫16杩1锛0~9杩欏崄涓暟瀛楃浉鍚岋紝鎴戜滑鐢ˋ锛孊锛孋锛孌锛孍锛孎杩欏叚涓瓧姣嶆潵鍒嗗埆琛ㄧず10锛11锛12锛13锛14锛15銆傚瓧姣嶄笉鍖哄垎澶у皬鍐欍 鍗佸叚杩涘埗鏁鐨勭0浣嶇殑鏉冨间负16鐨0娆℃柟锛岀1浣嶇殑鏉冨间负16鐨1娆℃柟锛岀2浣嶇殑鏉冨间负16鐨2娆℃柟锛屼緷娆$被鎺ㄣ 鎵浠ワ紝鍦ㄧN锛圢浠0...
  • 濡備綍鎶16杩涘埗鏁拌浆鎹㈡垚10杩涘埗?
    绛旓細鍦ㄧ▼搴忓憳妯″紡涓嬶紝鎮ㄥ彲浠ラ夋嫨鍗佸叚杩涘埗鏁锛屽苟杈撳叆闇瑕佽浆鎹㈢殑鏁板瓧銆杞崲涓哄崄杩涘埗銆傚綋鎮ㄨ緭鍏ュ崄鍏繘鍒舵暟鍚庯紝璁$畻鍣ㄤ細鑷姩灏嗗叾杞崲涓哄搴旂殑鍗佽繘鍒舵暟锛屽苟鍦ㄥ睆骞曚笂鏄剧ず鍑烘潵銆傞渶瑕佹敞鎰忕殑鏄紝璁$畻鍣ㄥ彧鑳借繘琛屽熀鏈殑杩涘埗杞崲锛屽鏋滈渶瑕佽繘琛屾洿鍔犲鏉傜殑璁$畻鎴栬浆鎹㈡搷浣滐紝鍙兘闇瑕佷娇鐢ㄥ叾浠栦笓涓氱殑宸ュ叿鎴栫紪绋嬭瑷杩涜鎿嶄綔銆
  • 鍗佸叚杩涘埗鎬庝箞杞崲鎴愬崄杩涘埗?
    绛旓細0.59375*16=9.5 (鍙9), 0.5*16=8.0 (鍙8).鎵浠鍗佽繘鍒鏁1673.59375杞寲涓哄崄鍏繘鍒舵暟鍚庝负: 986.98 浜屾暟鐨勮繘鍒跺拰杩涘埗杞崲 鑰冭檻涓涓10杩涘埗鏁123锛屾暟瀛1銆2銆3鍦ㄨ繖涓暟涓殑閲嶈鎬ф槸涓嶄竴鏍风殑锛3浠h〃鐨勬槸100鐨3鍊嶏紝2浠h〃101鐨2鍊嶏紝鑰1浠h〃鐨勫垯鏄102鐨1鍊嶃傛暟瀛︿笂鎶100锛101鍜102绉颁负...
  • 鍗佸叚杩涘埗鐨鏁版庝箞杞崲鎴愪负鍗佽繘鍒鐨?
    绛旓細灏嗗崄杩涘埗鏁 x 闄や互 16, 鍗 x = q * 16 + r锛屽彇寰椾綑鏁 r 鍜 鍟 q锛屾鏃朵綑鏁 r 灏辨槸 x 鐢鍗佸叚杩涘埗琛ㄧず鏃剁殑鏈浣庝綅鍊硷紱涔嬪悗鍟嗗 q 缁х画杩涜浠ヤ笂鐨勯櫎娉曟搷浣滐紝 鑾峰彇姣忔鐨勪綑鏁 r 浣滀负 鍗佸叚杩涘埗琛ㄧず鏃剁殑浣庝綅鍊, 鐩村埌 q 鍊煎皬浜 16 涓哄硷紝 姝ゆ椂鐨 q 鍊煎嵆涓哄崄鍏繘鍒惰〃绀烘椂鐨勬渶楂樹綅鍊笺備緥...
  • 鍗佸叚杩涘埗鎬庝箞杞崲鎴愬崄杩涘埗?
    绛旓細16杩涘埗鏁鐨勭0浣嶇殑鏉冨间负16鐨0娆℃柟锛岀1浣嶇殑鏉冨间负16鐨1娆℃柟锛岀2浣嶇殑鏉冨间负16鐨2娆℃柟鈥︽墍浠ワ紝鍦ㄧN锛圢浠0寮濮嬶級浣嶄笂锛屽鏋滄槸鏄暟 X 锛圶 澶т簬绛変簬0锛屽苟涓擷灏忎簬绛変簬 15锛屽嵆锛欶锛夎〃绀虹殑澶у皬涓 X 16鐨凬娆℃柟銆杩涘埗杞崲琛細渚嬶細2AF5鎹㈢畻鎴10杩涘埗:鐢ㄧ珫寮忚绠楋細绗0浣嶏細5 16^0 = 5 绗1浣...
  • 扩展阅读:16转10进制在线转换 ... 16位二进制对照表图 ... 16转10进制计算器 ... 1转化为16进制是多少 ... 16进制在线转换工具 ... 16进制ab转化为10进制 ... 16转10进制怎么计算 ... 十进制怎么换16进制 ... 16进制计算器在线计算 ...

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