C语言之按位异或

符号:^

按位异或,规则:相同为零,相异为一。

实际举例:一组数据中只有一个数字出现了一次。

其他所有数字都是成对出现的。请找出这个数字。(使用位运算)

代码实现:

#include <stdio.h>
int main()
{
 int arr[]={1,2,3,4,5,6,1,2,3,4,5,6,7};
 int i=0;
 int find=0;
 for(i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
 {
  find ^= arr[i];
 }
 printf("%d\n",find);
 return 0;
}

结果为:7

时间: 2024-10-22 17:43:26

C语言之按位异或的相关文章

C语言 按位异或实现加法

/* C语言 按位异或实现加法 */ #include <stdio.h> #include <stdlib.h> #include <string.h> void test1() { int a = 2; int b = 3; int cand = 0; int cxor = 0; int c = 0; //实现c=a+b //1.不考虑进位,按位计算各位累加(用异或实现),得到值xor: cxor = a^b; /* 实现说明: a的值是2,对应计算机中补码是 00

c语言的位操作

c语言的位操作最常用的地方就是用在对寄存器的写值上. 一.基本的一些概念 1.位与:& 操作:1 & 1 = 1: 1 & 0 = 0: 0 & 0 = 0: 特点:只有全是1的时候才是1,其他情况都是0. 总结:任何数和0位与就是0,和1位与没有变化,所以位与常用在清零上(清零用位与). 2.位或:| 操作:1 | 1 = 1: 1 | 0 = 1: 0 | 0 = 0: 特点:只有全0的时候才是0,其他情况都是1. 总结:任何数和1位或就是1,和0位或没有变化,所以位或

Swift -- 语言指南--高级运算符

原文地址: http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和Objective-C中的位运算符和移位运算. 不同于C语言中的数值计算,Swift的数值计算默认是不可溢出的.溢出行为会被捕获并报告为错误.你是故意的?好吧,你可以使用Swift为你准备的另一套默认允许溢出的数值运算符,如可溢出加&+.所有允许溢出的运算符都是以&开始的. 自定义的结构,类和枚举,是否可

Python语言学习笔记

获得人生中的成功需要的专注与坚持不懈多过天才与机会.  ——C.W. Wendte Python将很快成为你最喜欢的编程语言! Qt库?  PyQt  Perl-Qt 简单易学,功能强大,高效率的高层数据结构,简单而有效地实现面向对象编程. Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发. 注重的是如何解决问题而不是编程语言的语法和结构. wxPython,Twisted,Boa Constru

C语言内存分析

一.进制 概念:进制是一种计数方式,是数值的表现形式 4种主要的进制: ①. 十进制:0~9 ②. 二进制:0和1 ③. 八进制:0~7 ④. 十六进制:0~9+a b c d e f C语言在默认的情况下为十进制. int num=1010; // 十进制 int num=0b1100; // 二进制,以0b或者是0B开头 int num=014; // 八进制,以0开头 int num=0x4; // 十六进制,以0x开头 占位符: %d和%i :十进制整数的形式输出一个值 %o :以不带符

【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布

内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做了介绍,也带大家配置了SDL的开发环境.请大家按照上一课的步骤创建一个SDL工程,能够初步运行. 如果遇到问题,可以百度,Google相关平台SDL的配置.或者联系小编. 当然了,有些朋友可能会说开发C语言游戏还可以用GTK+这个库,但是个人认为GTK+没有SDL那么适合开发游戏,其创建图形界面的能

c语言学习随笔

c语言是一门语言,拥有语言的共性,当我们学习外语的时候了解其思维习惯外加一些基础知识就可以很快掌握,学习这门语言的时候同样我们需要了解它的基本知识和它的整个思维.那么下面先介绍一下我目前学习的基本知识. 1.基本数据类型: c语言的基本数据类型分为:字符型(char),整形(short, int, long), 浮点型(float, double) 其中字符型和整形还分为带符号的和不带符号的,默认情况下都是带符号的,如果使用unsigned则说明不带符号的,如果是带符号的,那么最高位将表示符号位

C语言的各种位运算符的操作简述

运算符: 算术运算符: + , - , * , / , % , ++ , -- 符合运算符: += , *= , /= , %= 条件运算符:  ? : 关系运算符: == , >= , <= , != , > , < 逻辑运算符: && , || , ! 赋值运算符: = 其他运算符: * , & , -> , . 位运算符: 1 > 按位与 &同时为一则为一 否则为零 3 & 5结果为 1(先将两个数化为二进制在进行计算) 3

c语言位运算详解

位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. C语言提供的位运算符列表: 运算符含义描述 & 按位与      如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 | 按位或      两个相应的二进制位中只要有一个为1,该位的结果值为1 ^ 按位异或    若参加运算的两个二进制位值相同则为0,否则为1 ~ 取反        ~