题目:查看两个int(32位)数的二进制有几位不同。
分析:要理解该题目的意思,就要明白C语言中关于位的一些操作符。
1)“&",按位与操作符,从低位到高位对两个数的每位进行与操作,如1001&1101=1001,都为1则取1;
2)"|",按位或操作符,有一个是1就取1;
3)"^",异或,不同则取1;
4)"~",非操作符,用来对一个二进制数按...
分类:
其他好文 时间:
2015-04-25 15:08:56
阅读次数:
163
void swap(int &a,int &b){a^=b;b^=a;a^=b;}^ 在 C 里面是按位异或操作符。异或运算的原理应该清楚吧?相同的话异或的结果就是 0,不同的话就是 1。举个例子,比如 a 表示十进制的 5,b 表示十进制的 12,按位异或结果就是:a = 0101 (5 的二进制...
分类:
其他好文 时间:
2015-04-17 17:38:31
阅读次数:
118
摘要:
本文开创性地分析了序列点在C语言表达式求值中的作用:序列点左边的操作数要先于其右边的操作数求值。讨论了逗号操作符,、逻辑与操作符&&、逻辑或操作符||和条件操作符?:的问号处需要序列点的原因。举例分析了序列点在表达式求值中的作用。
关键字:序列点 表达式求值 C语言
C语言作为一种主流程序设计语言,许多编程语言如Java、C++、C#都借鉴了它的语法。C语言也是一种很适当的程序设计入...
分类:
编程语言 时间:
2015-04-09 23:50:25
阅读次数:
357
本文适用于具有管理员用户和标准用户的所有Windows系统,如Windows2000以上的操作系统,UAC是WindowsVista以上版本的具有功能。新安装的Windows系统或者新购买的含有Windows系统计算机一开始都需要安装许多软件并需要设置较多的含有Windows安全或用户控制设置的功能或操作。此..
好记心不如烂笔头,为方便以后查看代码及代码重复利用,这里贴出S3C2440 Camera驱动代码。使用友善MINI2440开发板,开发环境为RealView MDK 4.22。
最初,本人在网上下载了许多mini2440 camera驱动的代码,但结果都不尽人意,因为这些代码看起来都比较晦涩难懂,都是直接对寄存器进行位与位或操作,且有的代码排版布局很乱,对初学者来说难度较大。由于本人接触了STM32开发后,觉得STM32的库函数给初学者提供了很大帮助,仅仅通过函数名及变量名就能知道当前操作的是哪个寄存器,...
分类:
其他好文 时间:
2015-04-08 13:20:19
阅读次数:
127
题意:通过他给的代码,跑出 n个数a【i】。 然后取任意多个连续的数,让他们 异或操作。 计算有多少种取法,使操作后结果为0.
做法:连续就想到了前缀和。 把前i个a的异或操作结果放在 num[i]中, 那么a【i】到a【j】个数的异或结果就是 num[j]^num[i-1]。 还有num【i】自身代表了开头到a【i】这些数的异或结果。
然后只要计算有多少num【i】为0,以及多少 num[j]^num[i-1] 为0就行了。再把总方案数 c(n,2)减去为0的个数,就是答案了。但是普通...
分类:
其他好文 时间:
2015-04-07 21:44:43
阅读次数:
231
好好的利用异或可以产生神奇的效果。
异或运算的性质:
任何一个数字异或它自己都等于0。也就是说,如果我们从头到尾依次异或数组中的每一个数字,那么最终的结果刚好是那个只出现一次的数字,因为那些出现两次的数字全部在异或中抵消掉了。
例题:
给定大小是N的数组,数组里的元素互相不重复,元素的大小范围是1~(N+1),目标是找出第一个miss的数。要求时间复杂度O(N),空间是O(1)....
分类:
编程语言 时间:
2015-04-02 16:29:18
阅读次数:
200
存在一个数组,该数组中仅有一个数仅出现了一次,其他所有数均出现两次,求这个数 思路:任何一个数和自身求异或操作都是0,任何一个数和0求异或操作都是它自身 class Solution {public: int singleNumber(int A[], int n) { int res=0; for...
分类:
其他好文 时间:
2015-04-01 14:58:29
阅读次数:
124
一、编程语言分类 1、机器语言 是用二进制代码0和1表示的计算机能直接识别和执行的一种机器指令的集合,这种指令集,称为机器码。 2、汇编语言 亦称为符号语言,是用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。 ...
分类:
编程语言 时间:
2015-03-30 13:02:23
阅读次数:
188
apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。sudoapt-getinstalllibmysqld-dev
分类:
其他好文 时间:
2015-03-20 10:50:57
阅读次数:
129