C语言编写程序如何以字符形式输入一个十六进制数,将其变换成一个十进制整数后输出?

C语言编写程序如何以字符形式输入一个十六进制数,将其变换成一个十进制整数后输出?,第1张

从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示

样例输入

FFFF

样例输出

65535

思路:感觉自己的下面两个方法都对

方案一:


方案二:

#include
int
main()
{
int
a
=10;
printf("%d,%x,%o",a,a,a,);//第一个是十进制,第二个是十六进制,第三个是八进制
}
如果有不明白加我百度HI

有两种方式可以使用。
1
使用C++的标准输出流cout,并指定输出格式为16进制。其标识符为hex。
于是将int的变量a以16进制形式输出的语句可以写作
cout
<<
hex
<<
a;
2
C++兼容C语言的所有功能,所以可以使用C语言格式化输出语句printf,并以%x为格式化字符,实现16进制输入,代码如下
printf("%x",a);
与之前使用cout的效果是相同的。

八进制:012
040
093
-01151
-0157
04663
-067756
051013
(在C/C++中,八进制开头要加0,来说明这个整数是八进制数)
十六进制:0xa
0x20
0x4b
-0x269
0x6f
0x9b3
-0x6fee
0x520b(在C/C++中,十六进制开头要加0x,来说明这个整数是十六进制数)

1、C/C++规定,16进制数必须以 0x开头。比如 0x1表示一个16进制数,而1则表示一个十进制,0xff,0xFF,0X102A,等等其中的x不用区分大小写。

C/C++中,10进制数有正负之分。比如12表示正12,而-12表示负12。但8进制和16进制只能表达无符号的正整数,如果在代码中写-0xF2,C/C++并不把它当成一个负数。

2、以下是一些用法示例:

int a = 0x100F;    //用一个十六进制数给变量a赋值

int b = 0x70 + a;    //用一个十六进制数+变量a的值给变量b赋值


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10546940.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存