C++ Primer Plus 笔记:2023.06.13 AND 2023.06.14

本文介绍了C++中数字常量的基数规则,如10进制、8进制和16进制的识别方式,并展示了如何使用iostream库的dec、hex和oct控制符以不同进制显示整数。同时,讨论了C++如何处理整型常量的默认类型,并提到了cout的成员函数put()以及如何通过转义序列表示ASCII码字符。
摘要由CSDN通过智能技术生成

1.C++使用前一(两)位来表示数字常量的基数。如果第一位为1-9,则基数为10(十进制);因此93是以10为基数的。如果第一位是0,第二位为1-7,则基数为8(八进制);因此042的基数是8,它相当于十进制34。如果前两位为0x或0X,则基数为16(十六进制);因此0x42为十六进制数,相当于十进制数66。

2.如果要以十六进制或八进制显示数值,则可以使用cout的一些特殊特性,头文件iostream提供了控制符dec、hex和oct。分别用来指示cout以十进制、十六进制和八进制显示整数。代码案例如下:

#include <iostream>
using namespace std;

int main()
{
	int chest = 42 ;
	int waist = 42 ;
	int ineam = 42 ;
	
	cout << "Monsieur cuts a striking figure!" << endl ;
	cout << "chest = " << chest << " (decimal for 42)" << endl ;
	cout << hex ;
	cout << "waist = " << waist << " (hexadecimal for 42)" << endl ;
	cout << oct ;
	cout << "ineam = " << ineam << " (octal for 42)" << endl ;
	return 0;
}

运行结果如下:

Monsieur cuts a striking figure!
chest = 42 (decimal for 42)
waist = 2a (hexadecimal for 42)
ineam = 52 (octal for 42)

在这个例子中,诸如cout << hex; 等代码不会在屏幕上显示任何内容,而只是修改cout显示整数的方式。

3.程序的声明将特定的整型变量的类型告诉了C++编辑器,但编译器如何知道常量的类型呢?举个下面的例子:

cout << "Year = " << 149.2 << "\n" ;

程序将把1492存储为int、long还是其他整型呢?答案是,除非有理由存储为其他类型(如使用他特殊的后缀来表示特定的类型,或者值太大,不能存储为int),否则C++将整型常量存储为int类型。

4.成员函数cout.put():
类定义了如何表示和控制数据。成员函数归类所有,描述了操纵类数据的方法。例如类ostream有一个put()成员函数,用来输出字符。只能通过类的特定对象(例如这里的cout对象)来使用成员函数。要通过对象(如cout)使用成员函数,必须用句点将对象名和函数名称( put() )连接起来。句点被称为成员运算符。cout.put( )的意思是,通过类对象cout来使用函数put( )。

5.可以基于字符的八进制和十六进制编码来使用转义序列。例如,Ctrl+Z的ASCII码为26,对应的八进制编码为032,十六进制编码为0xla。可以用下面的转义序列来表示该字符: \032或\0xla。将这些编码用单引号括起, 可以得到相应的字符常量,比如’\032’,也可以将他们放在字符串中,如
“hi\xla there"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值