新浪博客

C++判断整数是否为偶数的两种方法

2019-03-18 10:38阅读:
方法1:采用求余方法% int a = 100;
bool b;
b = (a%2 ==0);
方法2:采用位逻辑符号& int a = 100;
bool b;
b = !(a&1); // 注意要取反
到底哪个速度快?
#include 'stdlib.h' // CPU 端分配内存给变量,显示不出<>,用引号替代
#include 'stdio.h' // printf
#include 'time.h' //clock_t
#include 'chrono'
using namespace std; // 必要,放在前
using namespace chrono; // 必要
int main()
{
int n = 200000;
int a[200000];
bool b[200000];
for (int i = 0; i < n; i++)
a[i] = i;
for (int i = 0; i < n; i++)
b[i] = true;
auto start = system_clock::now();
for (int i = 0; i < n; i++)
b[i] = (a[i] % 2 == 0);
auto end = system_clock::now();
auto duration = duration_cast(end - start);
printf('(CPU) cost time: %f ms', 1000 * double(duration.count())*microseconds::period::num / microseconds::period::den);
start = system_clock::now();
for (int i = 0; i < n; i++)
b[i] = !(a[i] & 1);
end = system_clock::now();
dur
ation = duration_cast(end - start);
printf('(CPU) cost time: %f ms', 1000 * double(duration.count())*microseconds::period::num / microseconds::period::den);
return 0;
}
自己测完就清楚了。

我的更多文章

下载客户端阅读体验更佳

APP专享