在 redis 源码中 dictScan 算法中用到了用到了非常经典的二进制反转算法,该算法对二进制的反转高效而实用,同时对于理解位运算也有非常大的帮助。先呈现源码: /* Function to reverse bits. Algorithm from: * http://graphics.sta ...
分类:
编程语言 时间:
2019-11-11 09:14:06
阅读次数:
125
算术运算符 1.+ /相加运算,如果加数中有字符串,则+变为字符串拼接符 2.- /减运算符 3.* /乘运算符 4./ /除运算符 5.% /取模(余)运算符 赋值运算符 1.= /将等号右边的数给等号左边; 2.+= /例子:a += 1;等同a=a+1; 3.-= /用法同2 3.*= /用法 ...
分类:
其他好文 时间:
2019-11-09 23:20:53
阅读次数:
78
在刷pat的 "1073 多选题常见计分法" 题目时,发现如果需要判断每一个学生对应每道题的多选题是否错选,漏选,以及选对是比较麻烦的一件事,因为这涉及到两个集合的判断,判断一个集合是否是另一个集合的子集(即漏选,得一半的分),或者说两个集合是否完全相等(即题目得满分)。 刚开始通过set容器来保存 ...
分类:
编程语言 时间:
2019-11-09 17:29:57
阅读次数:
66
如题 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 #define rep(i,a,n) for(register int i = a;i <= n;++i) 6 using names ...
分类:
其他好文 时间:
2019-11-07 23:44:39
阅读次数:
106
一、概念 位运算在数字底层(表示数字的32个数位)进行运算的。由于位运算是低级的运算操作,所以速度往往也是最快的,但是它很不直观,许多场合不能够使用。大多数语言都提供了按位运算符,恰当的使用按位运算符有时候会取得很好的效果。 位运算只对整数起作用,如果一个运算不是整数,会自动转为整数后再运行。虽然在 ...
分类:
Web程序 时间:
2019-11-07 23:09:25
阅读次数:
144
什么是运算符? 本章节主要说明Python的运算符。举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称为运算符。 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 ...
分类:
编程语言 时间:
2019-11-07 09:31:13
阅读次数:
92
定义 $$ \begin{aligned} mex(a,b)=\sum_{i=0}^{k 1}mex(a_i,b_i)3^i \end{aligned} $$ 其中$a_i,b_i$表示$a,b$的三进制第$i$位,求 $$ \begin{aligned} c_k=\sum_{mex(i,j)=k} ...
分类:
其他好文 时间:
2019-11-06 13:04:21
阅读次数:
57
一、题目要求 二、题目背景 位运算:或,异或,与,移位 三、解题思路 (1)要求算法时间复杂度是线性的,O(n),想到的是先将列表排序,排序后相同的数值两两之间前后相邻,进行偶数次循环,判断两两数值是否相等即可。需要注意的是考虑列表只有 一个数字和最后一个是single number的情况。 运行结 ...
分类:
其他好文 时间:
2019-11-03 20:32:15
阅读次数:
97
什么是运算符? 本章节主要说明Python的运算符。举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称为运算符。 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 #!/us ...
分类:
编程语言 时间:
2019-11-03 16:26:03
阅读次数:
106
First. 陈列一下“异或”的一些性质 异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。 它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。 性质 1、交换律 2、结合律(即(a^b)^c ...
分类:
其他好文 时间:
2019-11-03 13:00:52
阅读次数:
69