scanf读入16进制数
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 数据范围:保证结果在1≤n≤2^31−1我的解法:
void HexToDec(void)
{
uint32_t result = 0;
scanf("%x", &result);
printf("%d", result);
}
scanf("%x",&n);就可以接收16进制数据。输入时可以写前导符0x也可以不写。
网友的解法:
int num=0;
while(scanf("%i\n",&num)!=-1)
{
printf("%d\n",num);
}
在scanf格式中,%d 只与十进制形式的整数相匹配。而%i 则可以匹配八进制、十进制、十六进制表示的整数。· 如果输入的数字有前缀 0(018、025),%i将会把它当作八进制数来处理,如果有前缀0x (0x54),它将以十六进制来处理。
标签:十六进制,scanf,牛客,num,result,八进制,十进制,刷题 From: https://www.cnblogs.com/FBsharl/p/17868989.html