程序员面试宝典
王先生的副业
屌丝,爱做梦的屌丝。
展开
-
面试宝典(PART I)位运算(I)求X和Y的平均数
使用位运算实现取平均数实例代码#include <cstdio>using namespace std;int func(int x,int );int main(){ printf("result=%d",func(729,271)); return 0;}int func(int x,int y){ return (x&y)+((x^y)>>1);}输出结果:原创 2017-10-13 21:34:34 · 289 阅读 · 0 评论 -
面试宝典(PART II)位运算(II)X&(X-1)的几个运用
判断一个数是不是2的N次方2的N次方(2,4,8,16… …)转换为二进制的特点是10,100,1000,10000,… … 所以比如对16使用x&(x-1) 得到10000&01111=0 所以可以由此判断一个数是不是2的N次方。 图解: 统计一个数的二进制中1的个数实例代码:#include <cstdio>using namespace std;int func(int x);in原创 2017-10-13 23:13:36 · 286 阅读 · 0 评论 -
面试宝典(PART III)大端小端
大端和小端大端概念:低位存在高地址单元,高位存在低地址单元小端概念:低位存在低地址单元,高位存在高地址单元图解示例代码:#include <cstdio>using namespace std;int main(){ unsigned int a=0xFFFFFFF7; unsigned char i=(unsigned char)a; char *b=(char*)&a;原创 2017-10-14 10:25:02 · 233 阅读 · 0 评论 -
面试宝典(PART IV)数据对齐问题
示例代码:#include <cstdio>#include <cstring>using namespace std;class B{private: bool bool_a; int int_a; bool bool_b;};class C{ int int_a; bool bool_a; bool bool_b;};int main()原创 2017-10-14 11:47:58 · 223 阅读 · 0 评论 -
真话和谎言(I)去往天堂的大门
有一个比较有趣的问题: 问题描述:有一个灵魂,站在两扇门前面,一扇门会通向天堂,一扇门会通向地狱,但是这个灵魂不知道哪一扇面会通向天堂,这时候他的面前有一个恶魔和一个天使,他们之中有一个人只会说真话,一个人只会说假话,但是这个灵魂不知道谁会说真话谁会说假话。而且此时他只有一次提问的机会,请问如何提问才能保证这个灵魂上天堂。思路:这个灵魂知道什么,不知道什么: 两扇门,有一扇通往天堂,另一扇通往地原创 2017-10-14 15:34:23 · 4898 阅读 · 0 评论 -
真话和谎言(II)如何去真话村
问题描述:在山的那边海的那边,有两个村子,这两个村子彼此距离比较远,一个村子叫真话村,一个村子叫谎言村,已知真话村的人永远只说真话,谎言村的人永远只说谎话,这时候外地来了一个人,他有一个亲戚在真话村,于是他来到了一个岔路口,看到两条小路,而且有一个老人坐在岔路口,并且知道这个老人肯定是真话村或者谎言村的人(周围没有别的村子)。请问如何向这个老人提问(只能提问一次)才能找到去真话村的路。图示:分析:因原创 2017-10-14 16:36:15 · 2456 阅读 · 0 评论 -
面试宝典 (PART V)迷途指针和空指针
迷途指针别 名: 悬浮指针,失控指针, 产生原因: 对一个指针进行delete操作后(这样会释放它的所指向的内存)并没有把它置为空而产生的。 后果: 如果没有重新赋值就企图再次使用该指针就会产生不可预料的后果。空指针产生原因: 对一个指针置为空。如myptr=0; 后果: 直接赋值会导致程序崩溃示例代码#include <cstdio>using namespace std;int原创 2017-10-15 15:30:04 · 287 阅读 · 0 评论 -
面试宝典(PART VI) 各种各样的指针
指针和const关于指针和const请参考这篇:http://blog.csdn.net/uncle_gy/article/details/78046575其他类型的指针 指针 含义 int*a 指向int的指针 int**a 指向指针的指针 int*a[10] 指针的数组,一个长度为10,元素为整型指针的数组 int(*a)[10] 指向数组的指针,一个指针,原创 2017-10-16 13:57:34 · 239 阅读 · 0 评论