C++|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字符型:char1无符号字符型:unsigned char 1 (不可省略,否则与int混肴)单精度:float4双精度:double8长双精度:long double8
【】内的内容可以省略
浮点数型:双精度型表示范围比单精度更大,精度也更好
各编译器可以自己规定各类数据的精度,因此c++可移植性差
C++用在讲究效率的地方,比如游戏安装等,而不是互联网领域等需要高度一致性的地方
单精度浮点数范围:包括负数
正数:3.4*10^-38----3.4*10 ^38
负数:-3.4*10^38-----3.4*10 ^-38
Size of(数据类型):计算数据类型占用的字节数
Bool:1个字节

16位有符号短整型中,第一位代表符号位,有符号数以补码形式存放
无符号数最小值为0
数据运算时可能会产生溢出,与数据存储结构有关
字符型与整型同样使用
浮点型:实型
Float:6位有效位
Double:15位有效位
Long double:15位有效位
浮点数:符号位S1+指数部分E8+尾数部分M23
小数点的位置是浮动的,决定于指数部分的数值

常量:值不能改变,包括数值型常量和字符型常量
数值型常量即常数,又包括整型常量和实型常量(小数)
字符型常量需要用单引号括起来
Short int型:-32768到32767
Long int型:-2147483648到2147483647
版本相关
十进制整数,整型常量后加大小写L,就成为long int型
【C++|C++ lecture2 数据类型与表达式(上)】八进制整数,常数开头加一个0,就是八进制形式的常数,如020029错误
十六进制整数,常数开头加一个0和大小写X,如0X20
输出默认为十进制,例如:cout <<020< 浮点数表示方法:
1 十进制小数形式:78为整型,78.为浮点型,省略了后面的小数部分,精度不同
整型2除以3得到0,浮点型2除以3得到0.666……
C++系统默认浮点数一律按双精度常量处理,占8个字节
实型数字后加字母F或f,表示单精度,占4个字节;加字母L或l,表示长双精度数,占8个或12个字节
2 指数形式:
3.14159可以表示为0.314159e1,类似科学计数法
计算机内部规范化指数形式:数符+数字部分+指数部分,如+3141593
-1234是整型的值,-1234F是错误的,应该修改为-1234.F
==:判断两个数是否相等
=:赋值
a=0.65f,b=0.6f,a-b=0.05F, 而不是0.05,因为float和double float精度不一样
因此,浮点数运算中是有误差的,比较两个浮点数相等是不能轻易使用的,精确相等是很难的!!因此最好避开直接比较。

    推荐阅读