UVA10473 Simple Base Conversion【进制转换】

In this problem you are asked to write a simplebase conversion program. You will be givena hexadecimal or decimal integer number as input.You will have to output the correspondingdecimal or hexadecimal number. Hexadecimalnumbers always starts with a ‘0x’ and all othernumbers are to be considered as decimal numbers.There will be no invalid numbers in theinput.


Input

The input file contains several lines of input. Each line contains a single non-negative number, whichmay be a decimal or hexadecimal number as explained in the problem statement. The decimal value ofthis number will be less than 231. A line containing a negative decimal number terminates input. Thisnumber should not be processed. Input numbers will contain no space within them.

Output

For each line of input (Except the last one) produce one line of output. This line should contain thedecimal or hexadecimal representation of the corresponding hexadecimal or decimal number. Like theinput, the hexadecimal numbers in the output should be preceded by a ‘0x’.

Sample Input

4

7

44

0x80685

-1

Sample Output

0x4

0x7

0x2C

525957


问题链接UVA10473 Simple Base Conversion

问题简述:(略)

问题分析

  这是一个进制转换问题,要充分利用格式化输入输出函数和字符串与整数之间转换的函数。

  充分利用这些函数,程序逻辑就简单了。

程序说明(略)

题记:(略)

参考链接:(略)


AC的C语言程序如下:

/* UVA10473 Simple Base Conversion */

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

#define N 16
char s[N];

int main(void)
{

    while (gets(s) != NULL && s[0] != '-')
        if(s[1] == 'x')
            printf("%ld\n", strtol(s, NULL, 16));
        else
            printf("0x%X\n", atoi(s));

    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值