我是靠谱客的博主 甜甜钢笔,最近开发中收集的这篇文章主要介绍c++中移位和与运算符的含义,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近再做一些练习题,发现很多地方用到移位、与等运算代替了常用的乘除法。这样做可以从很大程度上提高程序的效率缩短程序运行时间。但是这样做对于我这样的初学者来说一下子不能快速理解,所以在这里记录下一些常用的运算以及他们所代表的含义:

给定一个无符号整数n = 15, 它的二进制数为1111,下面我们结合这个数说说各个运算的含义 

(1)n >> 1;//将n向右移动一位,变为0111 = 7, 表示的数学含义是 n/2

(2)n << 1;//将n向左移动一位,变为11110 = 30,表示的数学含义是n * 2

(3)n & 0X1;//常用语判断n的奇偶性,如果n & 0X1 == 1 说明n的二进制中最后一位是1,即n是奇数

//如果 n & 0X1 == 0说明n的二进制位最后一位是0,即n是偶数

(4)n & (n-1);//所得结果是将n的最右边的1去掉

求一个数n的二进制位中1的个数

int counter = 0;

while(n)

{

++counter;

n = n & (n - 1);

}


n & (n - 1) == 0; 表示n是2的整数次幂

n & (n - 1) != 0; 表示n不是2的整数次幂

最后

以上就是甜甜钢笔为你收集整理的c++中移位和与运算符的含义的全部内容,希望文章能够帮你解决c++中移位和与运算符的含义所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部