试题4:十六进制字符串转十进制字符串

试题描述:写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

C语言解法

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


void convert16to10(char* str, int len)
{
    long sum = 0;
    int i = 0;
    for(i = len-1; i>=0; i--)
    {
        if((str[i] <= '9') && (str[i] >= '0'))
        {
            sum = sum + (str[i] - 48) * pow(16, len-i-1);
        }
        else if((str[i] <= 'F') && (str[i] >= 'A'))
        {
            sum = sum + (str[i] - 55) * pow(16, len-i-1);
        }

    }
    char num[100];
    itoa(sum, num, 10);


    //printf("%ld\n", sum);
    printf("%s\n", num);
}

int main()
{
    char str[100];

    while(gets(str))
    {
        int len = strlen(str);
        convert16to10(str, len);
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不...
    曲终人散Li阅读 3,362评论 0 19
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,403评论 0 2
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,464评论 0 5
  • 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )/* 什么叫多组同时输入 ...
    Auuuuu_阅读 801评论 0 0
  • 今天,杨众筹在朋友圈分享了一段感想,从理念开始谈到相信,原文如下:“这次年会三小时分享讲了12个模块,从我角度哪个...
    e1dc2d10ad0b阅读 273评论 0 0