C++笔记 day002基础知识回顾

首先要知道:计算机是以位bit为序列存储数据的,每一位存储0或者1.

      在位的一级上,存储是没有结构的;

      让存储具有结构,是用块处理存储的。就出现了字节(byte);

      通常是8位为一个块,构成一个字节;

      机器字(word)长:4个字节;

  注意:确切的大小因机器的不同而不同。

内置数据类型:

int  整型 一个机器字长,最小存储空间2个byte,16位,范围【-2^31,2^31-1】 ;

  对于int:几乎所有的编译器使用的存储空间都比所要求的大。

signed  带符号  表示类型可以是正数也可以是负数(包括0)

    表示signed整型类型最常见的是用其中一个位数作为符号位,符号位为1,代表负数;符号位为0,代表0或者正数。

    一个使用一位符号位的表示方式的8位signed整型取值是-128-127;

unsigned  无符号  只能表示大于或等于0的整数。

    无符号型中,所有的位数都表示数值,

    例如:定义一种类型使用8位表示,那么这种类型的unsigned类型可以取值0到255.

    赋值问题:

        把  负数(c++) 或者  超过范围的值   赋值给unsigned,存储的是求模后的值,

        例如:把257赋值给8位的unsigned char ,存储的是1,因为257对于256求模是1.

char 字符型 代表1个byte,8位,范围【-2^7,2^7-1】

     c++中,把-1赋值给8位的unsigned char,结果是255,因为-1对于256求模是255.

  注意: 在MYSQL中,字段类型char是指:使用指定长度的固定长度表示的字符串;

      比如char(8),则数据库会使用固定的8个字节来存储数据,不足8位的字符串在其后补空字符;

bool 布尔型   标识真值true和false,将算术类型的值赋给bool型,

short  短整型  半个机器字长,2个byte,16bit,

    注意:在执行整型数值运算时不要轻易使用,很可能是负值而出现越界,

long   长整型   一个或者2个机器字长,(在32位的机器中,int和long是一样的机器字长),32位;

float   单精度浮点型   6位有效数字,用一个字来表示,32位,

    一般程序而言,6位有效字是不够的,

    注意:在float类型中隐式的精度损失是不能忽略的。通常用double来计算要快很多,运行代价可以忽略不计。

double  双精度浮点型  10位有效数字,用两个字表示,64位,

应用:

int a1=x+y-z; int b1=x*y/z;

int a2=x-z+y; int b2=x/z*y;

问题:a1一定等于a2吗?

答案:不一定。

分析:因为x+y可能超过int表示的范围,而x-z+y则可能没有超过。

注意:大多数机器上,使用int类型进行整型计算一般不会出问题,但是int类型用16位表示,对大多数应用来说太小。

   实际应用中大多数机器都是用long做整型运算。但是long 运算代价要高于int,选择前需要做细节分析。

ps:

上面结论有问题的欢迎各位邮箱交流,wusheng221@163.com,谢谢

原文地址:https://www.cnblogs.com/wust221/p/3028754.html