C++ Primer Plus 代码学习解析(第三章 3.1-3.4)

文章包含三个C++代码片段,分别展示了类型大小、数值范围(包括溢出情况)、以及不同整数在十进制、十六进制和八进制中的表示。第一段代码关注类型限制,第二段演示了有符号和无符号整数的溢出行为,最后两段涉及进制转换和控制台输出格式。
摘要由CSDN通过智能技术生成

3.1 limits.cpp

#include <iostream>
#include <climits>

int main()
{
	using namespace std;
	int n_int         = INT_MAX;
	short n_short     = SHRT_MAX;
	long n_long       = LONG_MAX;
	long long n_llong = LLONG_MAX;

	cout << "int is " <<       sizeof(int) << " bytes." << endl;
	cout << "short is " <<     sizeof n_short << " bytes." << endl;
	cout << "long is " <<      sizeof n_long << " bytes." << endl;
	cout << "long long is " << sizeof n_llong << " bytes." << endl;
	cout << endl;

	cout << "Maximum values:" << endl;
	cout << "int: " << n_int << endl;
	cout << "short: " << n_short << endl;
	cout << "long: " <<  n_long << endl;
	cout << "long long: " << n_llong << endl;
	cout << endl;
	
	cout << "Minimun int value = " << INT_MIN << endl;
	cout << "Bits per byte = " << CHAR_BIT << endl;

	return 0;
}
  1. 头文件limits定义了符号常量来表示类型的限制(如INT_MAX)等
  2. sizeof对类型名(如:int)应使用括号(),对变量名(如:n_int )则不用
  3. 本代码主要展现了各类型所占字节的大小以及所代表的最大最小值

3.2 exceed.cpp

#include <iostream>
#define ZERO 0
#include <climits>

int main()
{
	using namespace std;
	short sam = SHRT_MAX;
	unsigned short sue = sam;

	cout << "sam has " << sam << " dollars and sue has" << sue << " dollars " << endl;

	sam += 1;
	sue += 1;
	cout << "sam has " << sam << " dollars and sue has" << sue << " dollars " << endl;

	sam = ZERO;
	sue = ZERO;
	cout << "sam has " << sam << " dollars and sue has" << sue << " dollars " << endl;
	
	sam -= 1;
	sue -= 1;
	cout << "sam has " << sam << " dollars and sue has" << sue << " dollars " << endl;

	return 0;
}
  1. 本代码主演探讨有符号整型和无符号溢出时的数据。
  2. 无符号最大值加1后溢出,变为最小值,而有符号最大值则远未达到
  3. 无符号由0减一后为-1,而有符号则溢出,变为最大值

3.3 hexoct.cpp

#include <iostream>

int main()
{
	using namespace std;
	int chest = 42;
	int waist = 0x42;
	int insem = 042;

	cout << "chest =  " << chest << " (42 in decimal)"  << endl;
	cout << "waist =  " << waist << " (0x42 in hex)" << endl;
	cout << "insem =  " << insem << " (042 in octal)" << endl;

	return 0;
}
  1. 本函数讲了不同进制下的42以十进制显示的数字
  2. 默认情况下,cout以十进制显示整数

3.4 hexoct2.cpp

#include <iostream>

int main()
{
	using namespace std;
	int chest = 42;
	int waist = 42;
	int insem = 42;

	cout << "chest =  " << chest << " (42 in decimal)" << endl;
	cout << hex;
	cout << "waist =  " << waist << " (0x42 in hex)" << endl;
	cout << oct;
	cout << "insem =  " << insem << " (042 in octal)" << endl;

	return 0;
}
  1. 此代码则是将42以不同的进制展现出来
  2. 诸如cout << hex等并不会在屏幕上显示任何内容,而是修改cout显示整数的方式。
  3. hex与oct等标识符都位于名称空间std中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值