十六进制转十进制c语言程序,蓝桥杯 - 基础练习十六进制转十进制(C语言版)...

#include /*

* 十六进制转十进制

* 作者:踏歌行

* 日期:2018 - 3 - 17

**/

int main()

{

int i;

int len = 0; //计算SUM长度

char SUM[50]; //存储结果

double index = 0; //16的多少次幂

long long sum = 0; //结果

int s_n = 0; //计算十六进制数组长度

double sixteen_1[8];//将输入的字符串数组转换成实数存入其中

char sixteen[8]; //输入的字符串数组

scanf("%s",sixteen);

for(i = 0; i < 8; i++)

{

switch(sixteen[i])

{

case '0':

sixteen_1[s_n++] = 0;

break;

case '1':

sixteen_1[s_n++] = 1;

break;

case '2':

sixteen_1[s_n++] = 2;

break;

case '3':

sixteen_1[s_n++] = 3;

break;

case '4':

sixteen_1[s_n++] = 4;

break;

case '5':

sixteen_1[s_n++] = 5;

break;

case '6':

sixteen_1[s_n++] = 6;

break;

case '7':

sixteen_1[s_n++] = 7;

break;

case '8':

sixteen_1[s_n++] = 8;

break;

case '9':

sixteen_1[s_n++] = 9;

break;

case 'A':

sixteen_1[s_n++] = 10;

break;

case 'B':

sixteen_1[s_n++] = 11;

break;

case 'C':

sixteen_1[s_n++] = 12;

break;

case 'D':

sixteen_1[s_n++] = 13;

break;

case 'E':

sixteen_1[s_n++] = 14;

break;

case 'F':

sixteen_1[s_n++] = 15;

break;

}

}

index = (double)s_n;

for(i = 0; i < s_n; i++)

{

sum += sixteen_1[i] * pow(16,index - 1);

index--;

}

if(sum == 0)

{

SUM[len++] = '0';

}

else

{

for(; sum > 0; )

{

SUM[len++] = sum % 10 + '0';

sum /= 10;

}

}

for(i = len - 1; i >= 0; i--)

{

printf("%c",SUM[i]);

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值