C语言基础之类型系统

一、类型系统介绍

,,,,类型系统是每个编程语言都会有的基本概念,C语言的类型系统可以概括为基本类型和复合类型,基本类型又可以细分为整型数值类型和浮点数数值类型,不同类型所占用的内存长度不相同,下面先来介绍一下基本类型。

整型数值基本类型

1, char 占用一个字节

2,短占用两个字节

3, int目前基本都是4字节

4,长int(可以简写为长)(32位系统是4字节,64位系统是8字节)

5,长长的int(可以简写为很久)占用8节字

浮点数数值基本类型,

1,浮动占用4字节(单精度)

2,双占用8节字(双精度浮点数)

复合类型包含如下几种

1, struct结构体

2,工会联合体

3, enum枚举(长度等同int)

4,数组

5,指针

二,有符号和无符号

,,,,在定义变量时默认是有符号类型,需要定义无符号变量时只需要使用关键字无符号来修饰即可,无符号字符,如无符号短,unsigned int等都是合法的变量,需要特别注意的是浮点数数值类型不能用关键字无符号来修饰,如无符号浮动和无符号双都是不合法的,因为浮点数类型的存储方式和整型数值类型不同。


,,有符号变量的二进制最高一位用来表示符号位,正数是0负数是1剩下的用来表示值,无符号变量的所有二进制位都用来表示值,整型数值变量的值在计算机内部使用补码来表示。

三、原码,反码和补码

,,原码是值的二进制表示方式,举例说明

,,,,,,,,,char才能v=1,0001年,原码=0000,,最高位是0

,,,,,,,,,,,, char v=1,原码=1000 0001,最高位是1

,,正数的原码=反码=补码

,,负数的反码等于原码除了符号位之外所有的位都取反,补码等于反码加一,举例说明

,,,,,,,,,,char v=1原码=1000 0001年,反码=1111 1110年,补码=1111 1110 + 1=1111 1111


C语言基础之类型系统