数据类型
本次主要介绍数组类型中的整型、实型和字符型三大类型。
整型
1、整型数据的编码
整型数据的编码有3种形式,即原码、反码和补码,整型数据在计算机中存储的是补码形式。
1)原码
原码是指一个数值的绝对值转换为二进制,在补齐或截断相应字节位后,将最高位用来表示符号,正数为0、负数为1形成的二进制编码。
例如:
10的双字节原码: 0000 0000 0000 1010
-10的双字节原码: 1000 0000 0000 1010
2)反码
正数的反码和原码一样,负数的反码是将原码除了符号位外的每一位逐个取反形成的二进制编码。
3)补码
正数的补码和反码一样,负数的补码是该数的反码加1后形成的二进制编码。
2、整型数据的表示
整型数据以int作为基本类型说明符,另外配合4个类型修饰符long、short、signed、unsigned扩充其含义。
(注意:以下的[]表示里面的内容可以省略)
数据类型 | 类型标识符 |
---|---|
有符号短整型 | [signed] short [int] |
有符号整型 | [signed] int |
有符号长整型 | [signed] long [int] |
无符号短整型 | unsigned short [int] |
无符号整型 | unsigned short [int] |
无符号长整型 | unsigned long [int] |
所占字节数 | 所表示数的范围 |
---|---|
2 | -215~215-1 |
4 | -231~231-1 |
4 | -231~231-1 |
2 | 0~216-1 |
4 | 0~232-1 |
4 | 0~232-1 |
3、整型数据的溢出
当进行整型数据计算时,若计算结果超过了该类型数据表示的范围,叫作数据溢出。
实型
实型数据用于表示带小数点的数据,根据表示范围以及精度要求的不同,分为单精度和双精度。
数据类型 | 类型标识符 |
---|---|
单精度 | float |
双精度 | double |
存储字节数 | 取值范围 |
---|---|
4 | -3.41038~3.41038 |
8 | -1.710308~ 1.710308 |
实数在计算机中是以指数存储的,对于任何实数都可以换成指数形式。
例如:
345.68转换成0.34568e3
上面这个e3表示103
字符型
字符型数据在内存中以它们的ASCII码值存储。
数据类型 | 类型标识符 |
---|---|
有符号字符型 | char |
无符号字符型 | unsigned char |
存储字节数 | 取值范围 |
---|---|
1 | -27~27-1 |
1 | 0~28-1 |