函数实现十六进制相加

来源:互联网 发布:淘宝客活动好报吗 编辑:程序博客网 时间:2024/05/29 08:57

十进制转十六进制

  • 使用sprintf函数
        void int_to_hex(int a,char *buf)        {            sprintf(buf,"%x",a);        }
  • 使用递归实现
        void int_to_hex(int a,char *buf)        {            static int i = 0;            if (a < 16)            {                if(a < 10)                {                    buf[i] = a + '0';                }                else                    buf[i] = a - 10 + 'a';                buf[i+1] = '\0';            }            else            {                int_to_hex(a/16,buf);                i++;                a %= 16;                if(a < 10)                    buf[i] = a + '0';                else                    buf[i] = a - 10 + 'a';            }        }

十六进制转十进制

    int hex_to_int(char *buf)    {        int i,t,sum = 0;        for(i = 0;buf[i];i++)        {            if(buf[i] < '0' || buf[i] > 'f')            {                printf("十六进制数错误!\n");                exit(0) ;            }            if(buf[i] <= '9' && buf[i] >= '0')                t = buf[i] - '0';            else                t = buf[i] - 'a' + 10;            sum = sum*16 + t;        }        return sum;    }

相加代码

    int fun(char *a,char *b)    {        int m,n;        m = hex_to_int(a);        n = hex_to_int(b);        int t = m + n;        int_to_hex(t,a);        return 0;    }
原创粉丝点击