C++ lecture2 数据类型与表达式(上)

Lecture 2

数据类型与表达式

数据类型:整型,浮点型,字符  具有相同特征的一类数据

2要敏感

1,2,3,4,8,16,32,64,128,256,…………

储存空间大小:bit 

              Byte 字节 1B=8b

              KB=1024B

              MB

              GB

              TB

              PB

              EB

              ZB

              YB

              DB

              NB

数制:基数 位权  基数*位权后相加

十进制:Decimal  二进制:Binary  八进制:Octal  十六进制:Hexadecimal

n进一

十进制与二进制之间的转换

N进制数展为十进制:按权展开,然后求和

十进制展为n进制:整数部分除N取余,小数部分乘n取整

二进制和八进制的互换

二进制转化为八进制:把二进制以小数点为基准,三位并一位,按权展开后相加

八进制转化为二进制:一位拆三位

同理如二进制与十六进制间转换

八进制与16进制间转换以二进制为桥梁

计算机中数据保存在内存中,程序保存在外存(硬盘),cpu从内存中取出数据进行计算

(无符号)整型占4个字节

(无符号)短整型 2个字节 

整型:int4  无符号整型:unsigned4  短整型:short2  无符号短整型2: unsigned short  

长整型:long4  字符型:char 无符号字符型:unsigned char 1 (不可省略,否则与int混肴)单精度:float 双精度:double8  长双精度:long double8

【】内的内容可以省略

浮点数型:双精度型表示范围比单精度更大,精度也更好

各编译器可以自己规定各类数据的精度,因此c++可移植性差

C++用在讲究效率的地方,比如游戏安装等,而不是互联网领域等需要高度一致性的地方

单精度浮点数范围:包括负数

正数:3.4*10^-38----3.4*10 ^38

负数:-3.4*10^38----  -3.4*10 ^-38

Size of(数据类型):计算数据类型占用的字节数

Bool1个字节

16位有符号短整型中,第一位代表符号位,有符号数以补码形式存放

无符号数最小值为0

数据运算时可能会产生溢出,与数据存储结构有关

字符型与整型同样使用

浮点型:实型

Float6位有效位

Double15位有效位

Long double15位有效位

浮点数:符号位S1+指数部分E8+尾数部分M23

小数点的位置是浮动的,决定于指数部分的数值

常量:值不能改变,包括数值型常量和字符型常量 

数值型常量即常数,又包括整型常量和实型常量(小数)

字符型常量需要用单引号括起来

Short int型:-3276832767

Long int型:-21474836482147483647

版本相关

十进制整数,整型常量后加大小写L,就成为long int

八进制整数,常数开头加一个0,就是八进制形式的常数,如020     029错误

十六进制整数,常数开头加一个0和大小写X,如0X20

输出默认为十进制,例如:cout <<020<输出为32

浮点数表示方法:

十进制小数形式:78为整型,78.为浮点型,省略了后面的小数部分,精度不同

整型2除以3得到0,浮点型2除以3得到0.666……

C++系统默认浮点数一律按双精度常量处理,占8个字节

实型数字后加字母Ff,表示单精度,占4个字节;加字母Ll,表示长双精度数,占8个或12个字节

指数形式:

3.14159可以表示为0.314159e1,类似科学计数法

计算机内部规范化指数形式:数符+数字部分+指数部分,如+  314159  3

-1234是整型的值,-1234F是错误的,应该修改为-1234.F

==:判断两个数是否相等

=:赋值

a=0.65fb=0.6fa-b=0.05F, 而不是0.05,因为floatdouble float精度不一样

因此,浮点数运算中是有误差的,比较两个浮点数相等是不能轻易使用的,精确相等是很难的!!因此最好避开直接比较。

你可能感兴趣的:(C++ lecture2 数据类型与表达式(上))