进制转换

来源:互联网 发布:域名购买是永久的吗 编辑:程序博客网 时间:2024/06/11 05:20

问题:
把一个读入的十进制数字以十六进制的形式输出,同时统计转换成的十六进制数字的长度。

分析:
非常经典的一类问题,只要递归一下,或者用堆栈,或者16进制可以选择二进制顺序每四位读取等等多种方式

代码:
只是试试写在一行里,行数是少了,可读性比较差

#include <stdio.h>int Print_Decimal(int n){    return (n&(1<<31)?putchar('-'),n*=(~0):0),(!(n>>4)?(n += 1<<4):(n = ((Print_Decimal(n>>4)+1<<4)+(n&15)))),putchar((n&15)+'0'+(((n&15)>9)?7:0)),n>>4;}int main(){    int number;    scanf("%d",&number);    int len = Print_Decimal(number);    printf("\nlen = %d\n",len);    return 0;}
0 0