位操作入门

来源:互联网 发布:cygwin linux内核 编辑:程序博客网 时间:2024/06/05 03:16

参考文章

  1. 位操作基础篇之位操作全面总结
  2. 题目来源:位操作

题目

一个整型数组里除了一个数字之外,其他的数字都出现了两次, 请找出这个数字。

#include <iostream>#include <cstdio>using namespace std;#define SIZE 21void init_data_with_twice(int a[], int arrSize);int find_only_occurred_once_number(int arr[], int arrSize);int main(){    int arr[SIZE] = {};    init_data_with_twice(arr, SIZE>>1);    arr[SIZE-1] = 99; //special data    int result = find_only_occurred_once_number(arr, SIZE);    cout<< result <<endl;    return 0;}void init_data_with_twice(int arr[], int arrSize){    for(int i=0; i<arrSize; i++)    {        arr[i] = i;        arr[arrSize+i] = i;    }}int find_only_occurred_once_number(int arr[], int arrSize){    int result = 0;    for(int i=0; i<arrSize; i++)    {        result ^= arr[i];    }    return result;}

简单判断奇偶
这种操作会比 number % 2 == 0 速度更快

原创粉丝点击