即将来临的校招,让人振奋。
先梳理下,C语言的基础知识,知识点很零碎,都是平时看到时的小小记录,也权当复习了,温故而知新吧~~~欢迎指正~~
1、X = X& (X -1) 在面试题中,看到这个式子会想到什么?
=》X转化为二进制后,所包含的1 的个数。
即若最右边位是0,那么-1的操作是把最右边的1开始,所有位取反,而每次的&,都将X最右边的1变为0,那么有多少个1,式子就能执行多少次,知道X变为0。所以一般而言,count记录X的1的位数。
int count = 0;
while(X)
{
X = X & (X-1);
count ++;
}
或者
2、表达式X,Y,当if(X&&Y)语句时,当X的不满足时,Y就不执行了,所以,Y中的变量也不会进行改变 或计算。