随笔分类 -  编程经验

一些编程的经验。
摘要:以下讨论的环境基于Visual Studio 2010。在使用OpenCV的过程中,我们不但要指定头文件和库的目录,而且要指定库的名称,比如为了使用常用的基本功能,我们需要指定附加libopencv_highgui249.dll。相比之下,在使用C++的boost库的过程中,我们只需要指定头文件的目... 阅读全文
posted @ 2014-12-29 21:30 nipan 阅读(518) 评论(0) 推荐(0)
摘要:如果我们要计算一个数X的N次幂,那么很直接地,我们可以写出以下代码: 1 int 2 Power(int base, int pow) 3 { 4 int result; 5 result = 1; 6 7 while (pow > 0) { 8 ... 阅读全文
posted @ 2014-11-02 16:28 nipan 阅读(334) 评论(0) 推荐(0)
摘要:如果我们要计算一个二进制数中1的个数,很显然会想到运用位运算的知识来解决。前面有篇博文,讲如何判断一个数是否是2的幂,其实就是判断一个二进制数中是否仅含有一个1,解法是x & x - 1。在理解上式的前提下,我们可以发现,如果二进制数x中包含不止一个1,那么x&x-1的结果就使得原先的x失去的最末尾... 阅读全文
posted @ 2014-11-02 16:01 nipan 阅读(637) 评论(0) 推荐(0)
摘要:一般来说,我们可以用异或运算来交换两个整数,这样可以避免在交换的过程中用到临时变量。(其实用到一个临时变量也不影响程序性能,所以此处无非是编程技巧的考察了。)代码可以这样写:1 void2 Swap(int *a, int *b)3 {4 5 *a ^= *b;6 *b ^=... 阅读全文
posted @ 2014-10-31 15:20 nipan 阅读(2473) 评论(0) 推荐(0)
摘要:1. 检查一个整数x是否是2的倍数:x & (x-1)提示:如果x是2的倍数,那么x的二进制数中只有一位是1。2. 最大的有符号整数(32位)~(1 b,如果为1,则a>(sizeof(int)*8-1)假设上式的值为s,另外假设右移操作为逻辑右移。则s的值为0或者1。所以我们可以得到a和b中较大的... 阅读全文
posted @ 2014-10-25 22:34 nipan 阅读(1782) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示