
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
思路:感觉自己的下面两个方法都对
方案一:
方案二:
#includeint
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赋值
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)