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;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。