重学c++primer(2)

重学c++primer(2)

第二章:变量和基本类型

1 基本内置类型

(1)算术类型

c++定义了一套包括算术类型和空类型在内的基本数据类型。其中算术类型包括了字符,整形数,布尔值,浮点数。空类型不对应具体的值,仅用于一些特殊场合,比如当函数不返回任何值时使用空类型作为返回类型。

1.算术类型。

共两类:

整型和浮点型

算术类型的尺寸在不同机器上有所差别,具体来说某一类型所占的比特数不同。它表示的数据范围也不一样。

c++提供几种字符类型。其中大部分支持国际化,基本字符类型是char。一个char空间可以确保容纳机器基本字符集中的任意字符对应的数字值。其他字符类型试用于扩展字符集,比如wchar_t,char16_t,char32_t.

c++语言规定一个int至少和一个short一样大。一个long至少与一个int一样大,一个long long类型至少与一个long一个样大。数据类型long long是在c++11中新定义。详情请看图。


2 内置类型的机器实现

计算机以比特序列存储数据,每个比特非0即1.大多数计算机以2的整数次幂个比特作为块来处理内存。可寻址的最小内存块称为字节。存储的基本单位为字,它通常由几个字节组成,c++语言中一个字节要至少能容纳机器基本字符集中的字符,大多数机器的字节由8比特构成。

3 有符号类型与无符号类型

除去扩展字符型和布尔类型外,其他整形可分为有符号的,无符号的。带符号的可表示正数,0,负数。无符号的只能表示非负数。int,short,long,long long都是有符号的。凡是类型名前加unsigned的,都是无符号的。另外,字符型分为三种,char,unsigned char ,signed char。要注意,char和signedchar 并不一样。虽然字符型有三种,但其表现形式只有两种,带符号,不带符号,具体的看编译器。

无符号类型中所有比特都用来存储值。

4,类型转换

对象的类型定义了它包含的数据和可进行的运算,其中类型转换操作在大多是类型中都支持,下面关于类型转换。我们看几个例子,

bool  b=42;

int i =b;

i=3.14;

double pi=i;

unsigned char c=-1;

signed char c2 =256;

通过这些例子可以看出》

1 当我把一个非布尔类型的算术值赋给布尔类型时,初始值为0则结果为false,否则为true。

2 当我把一个布尔值赋给非布尔时,初始值为false则结果为0,初始值为true结果为1.

3 当我把一个浮点数赋给整数类型,进行了近似处理,结果值将仅保留浮点数中小数点前的部分,

4 当我把一个整数类型赋给浮点类型,小数部分即为0,。

5 当赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取摸后的余数、

6 当赋给带符号类型一个超出它范围的值时,结果是未定义的。

练习 2.1.2结果

unsigned u=10,u2=42;
cout<<u2-u<<endl;
cout<<u-u2<<endl;
结果是

32

4294967264

int i=10,i2=42;
cout<<i2-i<<endl;
cout<<i-i2<<endl;
cout<<i-u<<endl;
cout<<u-i<<endl;
结果是

32

-32

0

0




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值