Unicode是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
复合梯形法则是连续子区间上的梯形公式的求和,为了近似考虑在水平轴上均匀划分的格子
其中对于所有i,h=x_i+1-x_i,如下图所示,在每个子区间中,我们进行具有
判断一个点是否在多边形内部,一般都采用射线法,它是计算几何常用的一个经典算法。
射线法的主要思路就是从这个点引出一条“射线”,与多边形的任意若干条边相交,累计相交的边数目,如果是奇数,那么点就在多边形内,否则点就在多边形外。
现代计算机的内存空间都是按照byte划分的,从理论上讲似乎对任何类型变量的访问都可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址上访问,这就是字节对齐。
字节对齐的原因,主要有如下两条:
平台原因:不是所有的硬件平台都能访问任意地址上的任意数据的;某些arm cpu上只能在某些地址处取某些特定类型的数据,否则会抛出硬件异常。
性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。
模板应该是C++语言中最难的部分。从知名的agg图形库,C++标准库Boost,就可以看到C++模板的强大之处。同时也看到模板存在的一些问题:
不当的使用会造成最终的二进制代码膨胀。
过度使用模板,导致代码易读性不好,并且调试困难。
工程中过多模板,造成工程构建速度奇慢无比。
ASCII(American Standard Code for Information Interchange)的中文全称是美国信息交换标准代码,它是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称ASCII码。