数据类型的介绍
内置类型(基本类型)
浮点型:float(单精度浮点型) double(双精度浮点型) long double
整型:int,short……
字符:char
类型的意义:
1.告诉程序这个类型开辟的空间
2.此类型的数据在内存中储存的方式
自定义类型(构造类型)
数组类型
结构体类型
枚举类型
联合类型
指针类型
空类型(void)
没有返回值
整型在内存中的储存
原码,反码,补码
整型在内存中储存时,如果为有符号整型,第一位二进制数为符号类型(0为正,1为负),其余表示数值,其中规定,正数原码、反码和补码相同,且按照原码形式储存,负数按照补码形式储存;如果为无符号类型,全部表示数值。输出时按照原码输出
原码:数值转换成二进制数字
反码:符号位不变,原码按位取反
补码:反码加一
例如:char类型的-10
原码:10001001
反码:11110110
补码:11110111
unsigned char类型的10
原码:00001001
反码:00001001
补码:00001001
有符号数
以char类型为例
00000000 0
00000001 1
……
01111111 127
10000000 -128(特殊)
10000001 -127
……
11111111 -1
大、小端(数据在内存中的储存方式)
大端模式:数据的低位在高位
小端模式:数据的低位在低位
其中,一位是按一个字节来说的;以int类型的变量为例,int为4个字节的大小,一个字节可以表示两个十六进制位,故为八个十六进制位储存
例如:int num=0x11223344;
大端模式:44332211
小端模式:11223344
int num2=0x12345678;
大端模式:78563412
小端模式:12345678
浮点型在内存中的储存
浮点数的储存较整型有所不同
一般浮点数先转换成(-1)^S×M×2^E
float:S占一个比特位,E占8个比特位,M占23个比特位
double:S占一个比特位,E占11个比特位,M占52个比特位
转换方式
1.找出符号位,将浮点数按照小数点前与小数点后转换成二进制数列
2.将二进制数用科学技术法表示,省略小数点前的1,小数点后面为M,E为指数加127,得出S,E,M
例如
float num=9;
9=1001.0=(-1)^0×1.001×2^3
S为0,E为001,M为128加2
内存中:0 10000010 00100000000000000000000