C++基础-位运算

昨天笔试遇到一道题,让实现乘法的计算方法,设计方案并优化,后来总结位运算相关知识如下:

在计算机中,数据是以1010的二进制形式存储的,1bytes = 8 bits,bit就是位,所以位运算就是对每个1010进行操作。

位运算有&|~^<<>>,分别是与或非异或左移右移。

与:1与不变,0与为0;

或:只有0或0为0,其他情况都为1;

非:取反;

异或:相同为0,不同为1;

左移右移:向左/右移动若干位;

乘法:

左移一位,相当于x2;

除法:

右移一位,/2;

不用申请第三个变量而实现2个变量值的互相交换:

因为a^b^a==b

所以有:

a=a^b;

b=a^b;

a=a^b;

原文地址:https://www.cnblogs.com/ee2213/p/3990907.html