博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断一个整数是否为4的倍数?
阅读量:4973 次
发布时间:2019-06-12

本文共 393 字,大约阅读时间需要 1 分钟。

算法如下:

  x&3==0,则是4的倍数。

 

原理:

  先来看一组数字的二进制表示

  4    0100

  8    1000

  12    1100

  16    10000

  20    10100

  由此可见4的倍数的二进制表示的后2为一定为0。

  从另外一个角度来看,4的二进制表示是0100,任何4的倍数一定是在此基础上增加n个0100,由此也可得4的倍数的二进制表示的后2为一定为0。

  所以之前的算法成立。

  利用位运算来判断是否最后2位是0比直接用十进制取余要快,测试数据回头补上。

  个人推测:此算法中参与运算的只是x的最后2位,理由是3的有效位只有2位,但只是推测。

 

  如果有更快速有效的办法,请各位朋友赐教。

转载于:https://www.cnblogs.com/superbi/archive/2013/02/28/2936334.html

你可能感兴趣的文章
python之PIL安装问题
查看>>
Python排序算法之冒泡排序
查看>>
hdu.3308 LCIS(线段树,区间合并+单点更新)
查看>>
LINUX 查看硬件配置命令
查看>>
图解git
查看>>
iOS APP网络分析之rvictl(可以捕捉除了Wifi以外的网络类型)
查看>>
传奇版本中利用NPC迅速给人物加血脚本制作
查看>>
ajax 实现修改功能
查看>>
Android drawable微技巧,你所不知道的drawable的那些细节
查看>>
两栏自适应布局延展到多栏自适应布局
查看>>
[Codeforces Round #162 (Div. 2)]C. Escape from Stones
查看>>
(最小路径覆盖) poj 2446
查看>>
Snapde和Excel、PowerPivot、WPS打开超大CSV文件性能比较
查看>>
MapReduce:超大机群上的简单数据处理
查看>>
深度图像特征在推荐和广告中的应用(一)
查看>>
环境搭建及创建对象方式及赋值(注入)
查看>>
【面向对象设计与构造】第四次博客作业
查看>>
Silverlight WCF RIA服务(四)如何添加和移除RIA Services Link
查看>>
C++对文件进行加密解密
查看>>
centos6.5安装apache2
查看>>