以0x开头的是十六进制数,如:
0x3f=(3f)16=(63)100x3f=(3f)_{16}=(63)_{10}0x3f=(3f)16=(63)10
以0开头的是八进制数,如:
077=(77)8=(63)10077=(77)_8=(63)_{10}077=(77)8=(63)10
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
cout<<(0x3f)<<endl;
cout<<(077)<<endl;
}
输出
63
63
补充
用printfprintfprintf时,%d\%d%d输出十进制下的数,%o\%o%o输出八进制下的数,%x\%x%x输出十六进制下的数。
如果加上#,如%#o,%#x,则显示进制前缀。
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
printf("%d %o %x\n",11,11,11);
printf("%d %#o %#x\n",11,11,11);
}
输出
11 13 b
11 013 0xb
2万+

被折叠的 条评论
为什么被折叠?



