
骚操作
tlewa
不疯魔,不成活
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
尾递归
什么是尾递归 什么是尾递归呢?(tail recursion), 顾名思议,就是一种“不一样的”递归,说到它的不一样,就得先说说一般的递归。对于一般的递归,比如下面的求阶乘,教科书上会告诉我们,如果这个函数调用的深度太深,很容易会有爆栈的危险。 // 先不考虑溢出问题 int func(int n) { if (n <= 1) return 1; return n * fu...转载 2019-04-25 22:45:19 · 1714 阅读 · 0 评论 -
位运算:基础篇
各种位运算的常见用法 1. and(与)运算 一个数 and 1的结果就是取二进制的最末位,可用于判断奇偶性 2. or(或)运算 一个数 or 1的结果就是把二进制末尾变成1,若想把一个数二进制末尾变成0,则先 or 1再减一就可以了,即变为最接近的偶数。 3. xor(异或)运算 异或可以这样定义:0和1异或0都不变,异或1则取反。异或的逆运算是其本身,即(a ...转载 2019-06-26 21:52:46 · 204 阅读 · 0 评论 -
位运算:进阶篇(1)
二进制中的1有奇数个还是偶数个 //32位的情况 int x; scanf("%d", &x); x ^= x >> 1; x ^= x >> 2; x ^= x >> 4; x ^= x >> 8; x ^= x >> 16; printf("%d", x&1); 就比如说如果x=1314520,第一次的异或操作的结果...转载 2019-07-12 17:43:15 · 388 阅读 · 0 评论