浮点数在内存中的存储

计算机中只能存储二进制数,对于浮点数,IEEE754 标准中定义了在计算机中如何存储浮点数。标准中定义了四种表示浮点数类型的方式,分为单精度(32比特)、双精度(64比特),拓展单精度(43比特以上,很少使用)和拓展双精度(79比特以上,通常用 80 比特表示)。我们以单精度浮点数为例来介绍浮点数的存储。 浮点...

阅读更多

抽象数据类型(ADT)-队列

队列定义 队列也是一种特殊的线性表,它只允许在表的一端进行插入,另一端进行删除,遵循先进先出(FIFO, First In First Out)的原则,可以进行插入的一端称为队首,可进行删除的一端称为队尾。向队列中加入数据叫入队,从队列中取出数据叫做出队。数据结构及操作如图所示: 队列实现 队列需要实现...

阅读更多

使用 LeanCloud 为 Github Pages 添加阅读量统计

使用 github Pages 写博客这么久,忽然发现一个问题,不蒜子对每篇文章的阅读量统计是不正确的,它的计数是整个网站的计数,并未查找到原因。因此想换一个统计方式。比较流行是是使用 LeanCloud。因此在个人网站上加入 LeanCloud 进行访问量统计。 注册 LeanCloud 去 LeanC...

阅读更多

中缀表达式,波兰式与逆波兰式

中缀表达式 我们通常见到的算术表达式就是中缀表达式,如 1+2x3+(4x5-6)x7。中缀表达式可以以树的形式表示为: 波兰式 中缀表达式比较直观,但对计算机来说比较难用于计算。因此在 1920 年,由波兰科学家扬.武卡谢维奇提出了一种不需要括号的计算表达式的方法,将操作符写到操作数之前,称做前缀表达...

阅读更多

用栈实现平衡符号的检查

平衡符号检测 编译器中经常会有测试符号是否平衡的语法检测,即有开符号(’(‘, ‘[’, ‘{‘),有对应的闭符号(’)’, ‘]’, ‘}’)与其按顺序对应。如 “[()]” 是合法的,“[(])” 是非法的。 符号是否平衡可以通过一个栈来检测,首先创建一个空栈,检查原字符串,当遇到一个开符号时,则将其入栈...

阅读更多

抽象数据类型(ADT)-栈

栈是另一种抽象数据类型,我们在前面文章(用数组实现栈)中讲到了它的定义和一种通用栈实现,实际应用中栈内多数只存储一种数据类型。这里我们实现一种存储单一数据类型的栈。 单一数据类型栈实现 如果栈中只有一种数据类型,可以通过 #define ELEMENT_TYPE char 来定义该数据类型,通过定义不同的 E...

阅读更多

抽象数据类型(ADT)-表

抽象数据类型(ADT) 抽象数据类型(Abstract Data Type)是特定的数据及在这些数据上的操作组成的集合,像表,栈,队列,图等和它们上面的操作都是抽象数据类型,这篇我们讲表。 表 形如 A0, A1, …, An-1 的数据结构叫表,这个表大小为 n。大小为 0 的表为空表。对于任一非空表,A...

阅读更多

Linux 系统生成 core 文件设置

默认 Linux 系统不生成 core 文件,要产生 core 文件则按以下设置实现: 1. 修改系统资源限制 可以通过 ulimit -a 查看系统各种资源限制,如 core 文件大小,数据段大小,打开文件数目等等。如: 可以看到,core 文件默认大小为 0, 因此不会产生 core 文件,使用 u...

阅读更多