对于比较模运算与位运算速度的一次实践 注意:我的实践结果是错误的

引言:

        大家都是敲代码的,好多也都是acm选手,相信很多人都经常会遇到分辨奇偶性,有的人喜欢if (n % 2)判奇数,而有的人特别是一些大佬则喜欢if (n & 1)判奇数,两种当然是都能判的,但是问题来了,打acm的玩家会更考虑时间,哪种方法更快呢???

我就正好碰到一个群里的大佬们讨论这个问题,于是就有了这次实践,然而结果却是........... 

实践目的:

        用自己的电脑实测一下位运算与模运算的快慢

实践过程:

      跑时环境:  开机有不短的时间了,把在用的后台清了一下,写了两个程序分开跑2e9次for循环,,两个程序基本没差,用clock()函数计时,总的来说环境比较粗糙,也算是一时兴起才测的

      两个程序 : 

//位运算 
#include<bits/stdc++.h>
using namespace std;
const int maxn = (int)2e9;
int x = 3;
int main()
{
	clock();
	for (int i = 0;i < maxn;i ++)
		x & 1;
	printf("位运算:%d\n",clock());
	return 0;
} 



//模运算 
#include<bits/stdc++.h>
using namespace std;
const int maxn = (int)2e9;
int x = 3;
int main()
{
	clock();
	for (int i = 0;i < maxn;i ++) 
		x % 2;
	printf("模运算:%d\n",clock());
	return 0;
} 

实践结果:

       两个程序分别运行了十次,得出的时间求其平均值

       对于位运算的结果是:3225.2

       对于模运算的结果是:3217.6

结果很明显的错了,具体我也不清楚为什么,大概是环境太粗糙了,

不过还是可以得出一个结论的:

                     位运算基本与模运算时间没差:

结语:

       虽然得出的结果是错误的,但这仍是一次尝试,也挺有趣的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值