在C语言中,位运算是比乘除取余运算快的,如果为了提高代码运行速度,我们可以用位运算来代替乘除取余运算的。 以下是例子: (123/4) == (123>>2); (123*8) == (123<<3); (123%32) == (123-(123>>4<<4));
如果我们进入一个函数时,需要判断一个static的变量的值,如果是0,我们需要赋值为1,如果是1,我们需要赋值为0。 下面是很多人会用的方法: void fun(void) { static int a = 1; if(a) a = 0; else a = 1; } 其实如果用位运算的话,我们只需要一行代码即可搞定 void fun(void) { static int a = 1; a ^= 1; } 可能我们一行代码的精简不会对我们的程序起多大的作用,但是写程序就该从精简与高效着手。 暂时先写到这。。。吃饭去:time:
|