笔试面试
XingYun-Liu
硕士在读,关注图像处理,计算机视觉,模式识别,嵌入式等学科和行业。希望多结识些同道中人。
展开
-
如何判断一个数的二进制有多少个1
下面给出计算代码: #include using namespace std; int foo(int x) { int count = 0; while(x) { count++; x = x&(x - 1); } return count; } int main() { cout << foo(500) << endl; } 举一反三 如何判断一个数是不原创 2015-08-24 15:24:50 · 3262 阅读 · 0 评论 -
a、b交换的几种方法(不采用中间变量)
第一种采用加法: a = a + b; b = a - b; a = a - b; 采用加法的一个缺点就是当a, b值都很大的时候容易产生越界 因此就有了更安全的方法 第二种采用异或 a = a^b; a = a^b; a = a^b;原创 2015-08-24 15:35:08 · 809 阅读 · 0 评论 -
(x&y)+((x^y)>>1)
程序员面试宝典中(x&y)+((x^y)>>1)的结果分析: 首先先看看数据的三种对应情况 1) 0 与 0对应 2) 0 与 1对应 3) 1 与 1对应 所以得到 1、是x,y对应位都是1,既1&1 = 1,,也就是(x+y)/2; 2、是x,y中对应位有且只有一位是1,用(x^y)相当于计算这些位的和,>>1相当于除2; 3、是x,y中对应原创 2015-08-24 15:13:17 · 641 阅读 · 0 评论 -
引用和指针的差别?
1:非空区别,在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。所以如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时应该将这个变量声明为指针,这样就可以给这个变量赋值;相反如果这个变量肯定指向一个对象,并且这个对象不允许为空,那么就应该声明为引用,引用的效率要高于指针效率; 2:合法性区别,我们在写代码的时候,对于指针通常要进行非空验证,if原创 2015-08-25 10:00:04 · 842 阅读 · 0 评论 -
内存分配不成功导致内存泄漏的问题
内存泄漏是在写程序中容易发生的问题,所以解决内存泄漏问题至关重要,在这里我推荐一个内存泄漏的自动化检测软件:visual leak detector,非常好用的一个软件 #include void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(char) * num); } int main() { ch原创 2015-08-25 10:29:23 · 894 阅读 · 0 评论 -
笔试的一些题目
1:怎么防止头文件重复引用?为什么? #ifndef _MY_FILE_ #def _MY_FILE_ .... .... #endif _MY_FILE_ 2:指针和引用的区别? ① 非空区别,在任何情况下都不能使用指向空值的引用,一个引用必须总是指向某些对象。所以如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时应该将这个变量声明为指针原创 2015-09-07 15:34:03 · 824 阅读 · 0 评论