c++ primer 学习之路 (4) 3.1.6 整形字面值十进制,八进制,十六进制

3.1.6 整型字面值

C++使用前一(两)位来标识数字常量的基数。如果第一位为1~9,则基数为10(十进制);因此93是以10为基数的。如果第一位是0,第二位为1~7,则基数为8(八进制);因此042的基数是8,它相当于十进制数34。如果前两位为0x或0X,则基数为16(十六进制);因此0x42为十六进制数,相当于十进制数66。对于十六进制数,字符a~f和A~F表示了十六进制位,对应于10~15。0xF为15,0xA5为165(10个16加5个1)

#include<iostream>
#include<climits>
using namespace std;
int main()
{
 int chest = 42;
 int waist = 0x42;
 int inseam = 042;
 cout << "chest =  " << chest << endl;
 cout << "waist =  " << waist << endl;
 cout << "inseam =  " << inseam << endl;
 system("pause");
 return 0;
}


cout提供了控制符dec、hex和oct,分别用于指示cout以十进制、十六进制和八进制格式显示整数。下面程序使用了hex和oct以上述三种格式显示十进制值42。默认格式为十进制,在修改格式之前,原来的格式将一直有效。

#include<iostream>
#include<climits>
using namespace std;
int main()
{
 int chest = 42;
 int waist = 42;
 int inseam = 42;
 cout << "chest =  " << chest << endl;
 cout << hex;
 cout << "waist =  " << waist << endl;
 cout << oct;
 cout << "inseam =  " << inseam << endl;
 system("pause");
 return 0;
}

诸如cout<<hex;等代码不会在屏幕上显示任何内容,而只是修改cout显示整数的方式。因此,控制符hex实际上是一条消息,告诉cout采取何种行为。另外,由于标识符hex位于名称空间std中,而程序使用了该名称空间,因此不能将hex用作变量名。然而,如果省略编译指令using,而使用std::cout、std::endl、std::hex和std::oct,则可以将hex用作变量名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值