数据与C

接上一篇

整数

整数是没有小数部分的数。计算机以二进制数字存储整数。

比如整数7以二进制写诗111,要在8位字节中存储数字,需要把前五位都设置成0,后3位设置成1.


00000111字长8位
------
-----421整数7

浮点数

在一个值后面加上一个小数点,该值就成为一个浮点值。所以,7是整数,7.00是浮点数。 + 整数没有小数部分,浮点数有小数部分。 + 浮点数可以表示的范围比整数大。 + 对于一些算数运算(如,两个很大的数相减),浮点数损失的精度更多。 + 因为在任何区间内(如1.0到2.0之间)都存在无穷多个实数,所以计算机的浮点数不能表示区间内所有的值。浮点数通常只是实际值的近似值。 + 过去,浮点运算比整数运算慢。不过,现在许多CPU都包含浮点处理器,缩小了速度上的差距。

C语言基本类型

整数类型


  • int类型
  • short int类型简写short
  • long int或者long。与int类似,long是由符号类型。
  • long long int或long long
  • unsigned int或unsigned只用于非负值的场合。

字符char类型

char类型用于存储字符(字母或标点符号),但是从技术层面看,char是整数类型。
计算机使用数字编码来处理字符,即用特定的整数表示特定的字符。

转义序列

转义序列 含义
\a 警报(ANSI C)
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ 反斜杠(\)
\’ 单引号
\” 双引号
\? 问号
\0oo 八进制(oo必须使有效的八进制数,即每个o可表示0~7中的一个数)
\xhh 十六进制(hh必须使有效的十六进制数,即每个h可表示0~f中的一个数)

从C90开始,不仅可以用十进制、八进制形式表示字符常量,C语言还提供了第三种选择——用十六进制形式表示字符常量,即反斜杠后面跟一个x或X,再加上1~3位十六进制数字。

整型常量的例子
类型 十六进制 八进制 十进制
char \0x41 \0101 N.A.
int 0x41 0101 65
unsigned int 0x41u 0101u 65u
long 0x41L 0101L 65L
unsigned long 0x41UL 0101UL 65UL
long long 0x41LL 0101LL 65LL
unsigned long long 0x41ULL 0101ULL 65ULL

_Bool类型

用于表示布尔值,即逻辑值true和false。

可移植类型:stdint.h和inttypes.h

float、double和long double

复数和虚数类型

其他类型

C语言还有一些从基本类型衍生的其他类型,包括数组、指针、结构和联合。

类型大小





上一页  C Primer Plus阅读学习(一)

下一页  C Primer Plus阅读学习(三)