数据类型:
内存中最小的存储单元是位,单位是比特
接下来的存储单元是字节。
内存中存放的数据,以二进制的补码存放,以十六进制展示
类型名 | 介绍 | 存储大小<字节>以及特点 |
char | 字符型 | 1 C语言未规定char是否有符号,取决于编译器,vs中默认有符号。 |
short | 短整型 | 2 |
int | 整型 | 4 |
long | 长整型 | 在32位平台上为4 在64位平台上为8 |
flaot | 单精度浮点型 | 4 |
double | 双精度浮点型 | 8 |
整型在内存中的存储模式
原码,反码,补码
数值的表现形式:二进制,八进制,十进制,十六进制
eg:
-10的原反补码:
原码:10000000000000000000000000001010
反码:11111111111111111111111111110101
补码;11111111111111111111111111110110
在内存中的显示方式为:
f6 ff ff ff
为什么要以补码的形式存放?
使用补码,可以在运算的时候将
1.使用补码,可以在运算的时候将符号位和数值域统一处理,同时加减法也可以统一处理
2.保证数据在整形提升前后表达的值不变。
有符号数和无符号数
有符号数二进制序列的最高位是符号位
无符号数二进制序列的最高位不是符号位
对于有符号整型来说,随着其自增,ta的值会在其类型的存储范围中不断无限循环下去,并不会超出该范围。同样对于其无符号整数来说,其值也会在0-255之间循环下去。
隐式类型转换:
当使用一种类型替代另一种类型进行操作或者存在两个不同类型的对象进行操作时,首先进行类型转换。类型转换分为隐式类型转换和显示类型转换。
截断操作,整型提升和运算转换
整型运算中,若使用char和short类型,则在使用前需要进行整型提升。
前提条件:
其在内存中的存储大小小于int类型时候,需要对该类型进行整型提升转换成int或者unsigned int型,然后再送入CPU中去运算。
提升规则:
有符号:在高位补变量的符号位
无符号:补0;
整型提升作用于补码,但是正数的原码和补码相同。