先要了解一下C语言里全部的位运算都是指二进制数的位运算。即使输入的是十进制的数,在内存中也是存储为二进制形式。 “=0。
功能:将整型数a按二进制位向左移动m位,高位移出后,低位补0。 “>>”使用方法:
格式是:a>>m,a和m必须是整型表达式,要求m>=0。 功能:将整型数a按二进制位向右移动m...
分类:
编程语言 时间:
2014-06-11 07:15:45
阅读次数:
242
其实编程之美也有类似的题,这道题是编程珠玑第二章的题目。题目描述:给定一个字符串,将字符串循环移位K次。最简答的方法就是,通过O(n)的辅助空间,将数组循环移位,时间复杂度就是O(n)但是如果要求空间复杂度为O(1)呢?观察规律可知,对前K位反转以及后面的反转,最后对整个字符串反转就能达到O(1)的...
分类:
其他好文 时间:
2014-06-10 21:02:52
阅读次数:
275
题目只有简单的一句话,看起来可真简单啊,呵呵,假象。这个题目的难点在于对时间效率的限制和边界值的测试。第一印象肯定是循环一个个把因子从被除数中减去不久行了么,可是对于比如INT_MAX/1或者INT_MIN/1之类的执行时间长的可怕,会超出时间限制。改善时间效率的思路是参考网上别人代码,将因子不断乘以2(可以通过移位实现,同时结果也从1开始不断移位加倍),然后和被除数比较,等到大于被除数一半了,就从被除数中减去,将因子个数叠加入结果中。然后在剩下的被除数中采用同样的方法减去小于其一半的因子和,循环往复。我在...
分类:
其他好文 时间:
2014-06-10 06:51:06
阅读次数:
209
Implement
pow(x,n).要点:1、注意n是正数还是负数2、当n是负数时,注意n最小值时的处理方法:INT_MIN的绝对值比INT_MAX大1;3、当n为0时,任何非零实数的0次方都是14、尽量使用移位运算来代替除法运算,加快算法执行的速度。5、x取值为0时,0的正数次幂是1,而负数次幂...
分类:
其他好文 时间:
2014-06-06 15:52:27
阅读次数:
274
寥寥数笔,记录我的C语言盲点笔记,只为曾经经历过,亦有误,可交流。1.逻辑表达式的使用取值 = 表达式 ? 表达式1:表达式2;比如x = y > z ? y:z2."+,-"等逻辑运算符优先级大于移位,移位大于逻辑运算3.sizeof在编译时由编译器完成,对其传入的参数不做运算处理。sizeof(i++);返回4;不会对实际的i进行操作sizeof和strlen的区别是,后者是运算时执行。返回遇...
分类:
编程语言 时间:
2014-06-04 23:37:44
阅读次数:
256
下面是基于KWIC 的关键字匹配算法(管道+过滤器模式下实现)
关键部分的管道+过滤器 软件体系下的实现, 在很多的关键字搜索平台都使用了这一 循环移位+排序输出的 关键字匹配算法:
具体需求如下:
1、使用管道-过滤器风格:
每个过滤器处理数据,然后将结果送至下一个过滤器,。要有数据传入,过滤器即开始工作。过滤器之间的数据共享被严格限制在管道传输
四个过滤器:
输入(Input fi...
分类:
其他好文 时间:
2014-06-04 22:35:16
阅读次数:
572
前言在去年,我们对IScroll的源码进行了学习,并且分离出了一段代码自己使用,在使用学习过程中发现几个致命问题:① 光标移位②
文本框找不到(先让文本框获取焦点,再滑动一下,输入文字便可重现)③
偶尔导致头部消失,头部可不是fixed哦由于以上问题,加之去年我们团队的工作量极大,和中间一些组织架构...
分类:
其他好文 时间:
2014-06-04 14:56:47
阅读次数:
875
SHL、SHR、SAL、SAR: 移位指令
;SHL(Shift Left): 逻辑左移
;SHR(Shift Right): 逻辑右移
;SAL(Shift Arithmetic Left): 算术左移
;SAR(Shift Arithmetic Right): 算术右移
;其中的 SHL 和 SAL 相同, 但 SHR 和 SAR 不同...
分类:
其他好文 时间:
2014-06-03 03:21:11
阅读次数:
365
前言在去年,我们对IScroll的源码进行了学习,并且分离出了一段代码自己使用,在使用学习过程中发现几个致命问题:① 光标移位②
文本框找不到(先让文本框获取焦点,再滑动一下,输入文字便可重现)③
偶尔导致头部消失,头部可不是fixed哦由于以上问题,加之去年我们团队的工作量极大,和中间一些组织架构...
分类:
移动开发 时间:
2014-06-02 21:36:33
阅读次数:
416
Describe:
有2字节字符数据,需要转换成2字节的短整型,字符数据低字节在前。Analyse: 其实就是取一下数据,移位再或一下就好了,大伙都这样想的。Ex1:
假设tmp1就是短整型,p指向数据为{0x01, 0x02}请看如下表达式:1 tmp1 = ((*p++)&0xFF) | ...
分类:
其他好文 时间:
2014-05-30 04:12:48
阅读次数:
239