C++不同进制整数
在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=11; //给赋一个十进制整数值 cout<<"after a=11(十进制11), a="<<a<<"(十进制)"<<endl; a=011; //给赋一个八进制整数值 cout<<"after a=011(八进制11), a="<<a<<"(十进制)"<<endl; a=0x11; //给赋一个八进制整数值 cout<<"after a=0x11(十六进制11), a="<<a<<"(十进制)"<<endl<<endl; cout<<"以下整数的输出按输出格式控制符指定的进制进行"<<endl; a=11; //给赋一个十进制整数值 cout<<"after a=11(十进制11), a="<<dec<<a<<"(十进制)"<<endl; a=011; //给赋一个八进制整数值 cout<<"after a=011(八进制11), a="<<oct<<a<<"(八进制)"<<endl; a=0x11; //给赋一个八进制整数值 cout<<"after a=0x11(十六进制11), a="<<hex<<a<<"(十六进制)"<<endl; return 0; }
运行结果