在C++的整数常量中,整数分为十进制整数、八进制整数和十六进制整数。
那给出一个整型常量怎样区分是何种进制呢?/给出一个整型常量,如100,默认是十进制数,如果在该数前加0,如0100,则此数表示为八进制数,如果在该数前加0x,如0x100,则此数表示为十六进制数。
使用cout输出一个整数时,默认按十进制进行输出,如果想让该数按八进制或十六进制进行输出,需要使用输出格式控制符。/如果使用格式控制符,要包含头文件iomanip。
十进制的输出格式控制符为dec(默认使用),八进制的格式控制为oct,十六进制的格式控制符为hex。
以下是程序示例
//不同进制整数的使用
//给出一个整型常量,如100,默认是十进制数,
//如果在该数前加0,如0100,则此数表示为八进制数
//如果在该数前加0x,如0x100,则此数表示为十六进制数
//使用cout输出一个整数时,默认按十进制进行输出,
//如果想让该数按八进制或十六进制进行输出,需要使用输出格式控制符
//如果使用格式控制符,要包含头文件iomanip
//十进制的输出格式控制符为dec,八进制的格式控制为oct,十六进制的格式控制符为hex #include <iostream>
#include <iomanip> //包含输出格式控制头文件
using namespace std;
int main()
{
cout<<"以下整数的输出都按十进制进行"<<endl;
int a; //整型a
a=; //给赋一个十进制整数值
cout<<"after a=11(十进制11), a="<<a<<"(十进制)"<<endl;
a=; //给赋一个八进制整数值
cout<<"after a=011(八进制11), a="<<a<<"(十进制)"<<endl;
a=0x11; //给赋一个八进制整数值
cout<<"after a=0x11(十六进制11), a="<<a<<"(十进制)"<<endl<<endl; cout<<"以下整数的输出按输出格式控制符指定的进制进行"<<endl;
a=; //给赋一个十进制整数值
cout<<"after a=11(十进制11), a="<<dec<<a<<"(十进制)"<<endl;
a=; //给赋一个八进制整数值
cout<<"after a=011(八进制11), a="<<oct<<a<<"(八进制)"<<endl;
a=0x11; //给赋一个八进制整数值
cout<<"after a=0x11(十六进制11), a="<<hex<<a<<"(十六进制)"<<endl; return ;
}
运行结果