题解 | #进制转换#

进制转换

http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>


//0xAAA = 10*2^(4*2)+10*2^(4*1)+10*2^(4*0)
int main()
{
    char HEX[20] = { 0 };
    scanf("%s", HEX);
    int DEC = 0;

    for (int i = 2; i < strlen(HEX); i++)
    {
     //   printf("HEX[%d]=%d\n",i, HEX[i]);
        if (HEX[i] >= 65 && HEX[i] <= 70) //输入为英文字母
        {
            DEC += (HEX[i] - 55) * pow(2, 4 * (strlen(HEX)-i - 1));
        }
        else if (HEX[i] >= 49 && HEX[i] <= 57)//输入为阿拉伯数字
        {
            DEC += (HEX[i] - 48) * pow(2, 4 * (strlen(HEX) - i - 1));
        }
     //   printf("%d\n", DEC);
    }
    printf("%d", DEC);

}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务