菜鸟系列之C/C++经典试题(八)
计算二进制中1的个数...
分类:
编程语言 时间:
2014-09-06 18:42:03
阅读次数:
186
情形一:数组中所有数都出现两次,只有一个数出现一次
情形二:数组中所有数都出现两次,只有两个数出现一次
情形一二很多地方都有说明,这里就不啰嗦了,有一点需要注意:当知道原始数据时,可以使用解方程的方法,这样可以把上面的情形无线推广,具体见编程之美
情形三:数组中所有数都出现三次,只有一个数出现一次
方法一:如果数组中的元素都是三个三个出现的,那么从二进制表示的角度,每个位上...
分类:
其他好文 时间:
2014-09-06 09:46:13
阅读次数:
171
1、定义结构体的这种写法会导致调试时不能监视结构体成员变量 typedef struct listnode { int data; struct listnode *next; }listnode; 两个listnode相同导致上述问题。 2、交换两个数的问题 用位运算和无中间值得方法,若交换的两个...
分类:
其他好文 时间:
2014-09-05 17:48:41
阅读次数:
202
位运算符:
(1)>> (a >>b)相当于a / (2的b次幂)注意取整,右移后,原来高位是什么,就用什么来补充空下的高位
(2)
(3)>>> 3>>>1 = 1 ;-> 3/2 = 1 ;与>>不同的是,右移后,不管原来高位是什么,都用0来补充空下的高位,PS:无
PS:移位运算符,默认是模32的运算,除非左边的操作数是long,那么这种情况下是模34位运算,...
分类:
编程语言 时间:
2014-09-04 17:05:49
阅读次数:
217
组合
1.位运算实现求组合:
在此介绍二进制转化法,即,将每个组合与一个二进制数对应起来,枚举二进制的同时,枚举每个组合。如字符串:abcde,则有
00000---------null
00001---------a
00010 --------b
00011---------ab
00100---------c
… …
11111--------abcde
给出程序...
分类:
其他好文 时间:
2014-09-04 11:52:49
阅读次数:
167
按位非运算符,简单的理解就是改变运算数的符号并减去1,当然,这是只是简单的理解能转换成number类型的数据。那么,对于typeof var!==”number”的类型来说,进行运算时,会尝试转化成32位整形数据,如果无法转换成整形数据,就转换为NaN;JS在位运算上用了更简便的一种方法来实现这中运...
分类:
Web程序 时间:
2014-09-03 19:33:57
阅读次数:
218
题目大意:
给出一个序列,有两种操作,一种是计算l到r的和,另一种是让l到r的数全部和x做异或运算。
做法:
很显然直接暴力是不可能的(但是这题刚刚出来的时候,很多人用暴力水过去了,后来加强的数据吧),又是两种操作,又想到了线段树。。但是这并不简单,异或操作该怎么处理?
异或是一种位运算,如果x的第j位是1,那么说明l到r的每个数的第j位都要反转,(0^1=1,1^1=0),如果是0,那么...
分类:
其他好文 时间:
2014-09-02 15:56:35
阅读次数:
255
除了static_stream还有stream可以进行按位读写之外,TBOX还提供了更加原始、更加底层的位数据操作接口,例如直接对某个数据指针的位读取操作,可以使用utils库的tb_bits_get_xxx和tb_bits_set_xxx 系列接口, 这个更加的轻量:
分类:
其他好文 时间:
2014-09-02 12:00:14
阅读次数:
194
之前一直以为,在js的位运算中,双精度浮点数在内部会先被转成32位整数,再执行位运算,然后再转为64位数值,因此效率极低。今天实验发现,对浮点执行位运算只会导致数值不准确,而不会导致效率低下,相比乘法,左移位要快66%(其实就是浮点运算与整数运算的差距)。以下结果在 IE 7 ~ IE 10 上测试...
分类:
编程语言 时间:
2014-09-01 22:21:13
阅读次数:
306
JAVA 位运算符和位移运算符java位运算符包括&(与) AND|(或) OR^(异或) XOR~(非) NOT位移运算符包括>>(右移)>>(右移,左边空出的位以0填充)顾名思义,位运算符用于位运算,那就只能对整型或者字符型进行运算。而除了~(非)是一元运算符之外其他的都为二元运算符。所有位运算...
分类:
编程语言 时间:
2014-09-01 00:20:52
阅读次数:
272