树状数组lowbit()函数所求的就是最低位1的位置所以可以通过位运算来计算 树状数组通过 x&(x^(x-1)) 能够成功求出lowbit的原因: 首先设x=6,即110(2) 于是我们使 x-1=101 可以发现,当我们将一个二进制数减一时,从最低位一(即lowbit)开始向后的部分与之前全部相 ...
分类:
编程语言 时间:
2017-07-16 11:20:44
阅读次数:
273
public class txs { static void leftbit(){ int i; //整型长度为32位 //位 int num=0xFFFFFFE; //1111 1111 1111 1111 1111 1111 1110 //28 for(i=0;i<28;i++){ //循环一次 ...
分类:
编程语言 时间:
2017-07-16 10:07:27
阅读次数:
208
仓鼠大神博客:http://www.cnblogs.com/linyujun/p/5194184.html http://www.cnblogs.com/linyujun/p/5194170.html ①gcd 一行版: 位运算版: ②快速幂和快速乘 ③扩展欧几里得(扩展gcd) ④乘法逆元 扩展欧 ...
分类:
编程语言 时间:
2017-07-14 23:58:51
阅读次数:
389
>>>与>>是位运算符,只对整型有效(不能用于浮点型)。当是整型的时候(low+high)>>1可以代替(low+high)/2。>>>是无符号右移运算符。如果 low+high是正整数,这三种运算是等价的。 由于有编译器优化,他们的效率应该是相同的(如果不存在编译器优化,移位运算更快)。用>>>一 ...
分类:
编程语言 时间:
2017-07-14 14:50:43
阅读次数:
259
一、什么是运算符: 运算符就是对常量和变量进行操作的符号。 二、运算符的分类: 算术运算符、赋值运算符、比较(关系或条件)运算符、逻辑运算符、位运算符、三目运算符 三、算术运算符的使用: (1)算术运算符包括+、-、*、/、%、++、-- (2)+号在Java中有三种作用:代表正号、做加法运算、做字 ...
分类:
其他好文 时间:
2017-07-13 20:37:01
阅读次数:
213
位运算主要有:|&^~&这个是只要有0,则0|这个只要有1,则1^异或运算,只要不同则为1~全部相反参与位运算首先要将数值化作为二进制补码,方可参与运算>>>>><<有符号右移无符号右移有符号左移,最高位是1,则左边补1不论最高位是1或者0右边补0最高..
分类:
其他好文 时间:
2017-07-12 23:26:18
阅读次数:
170
线段树,顾名思义,是一种可以以log2n的时间复杂度来进行区间访问和区间查询求和的骚包操作,不同于一般的N或者是N2的算法,特点就是快,由于二叉树的性质,所以可以用位运算优化的一种裸的基础的简单数据结构。由于二叉树的性质,兴许是满的?总之左儿子是其父亲的两倍,右儿子是其父亲的两倍加一,所以更新父亲的 ...
分类:
其他好文 时间:
2017-07-12 21:18:42
阅读次数:
238
1、字符串连接 local tmp = "abc" local tmp1 = "ddd" tmp..tmp1 2、 table 类型 就是关联数组 local table = {} table["abc"] = "" 初始化 local table = {0x7E, 0x01, 0x05} loca ...
分类:
其他好文 时间:
2017-07-12 19:02:57
阅读次数:
136
a<<1 相当于a*2 a>>1 相当于a/2 a<<|1 相当于a*2+1 一些算法用得到。 ...
分类:
其他好文 时间:
2017-07-12 01:00:02
阅读次数:
179