
C
「已注销」
前后左右端工程师
展开
-
位运算的自悟
口诀: 清零取反要用与,某一位置可用或。 若要取反和交换,轻轻松松用异或。1.先举个例子,6的二进制是:110 ,所以 在补0 后显示为:0000 0011。 没错,如你所见,二进制在 补0后 是以 后为前的排序2.给定整数 n与m. 进行位运算操作:1 << m 这是个非常 常用的操作,常用于:对n的第m位数进行操作。 1 << m :可谓是,定位 到 n 的第m位数,然后原创 2017-03-03 14:40:43 · 405 阅读 · 0 评论 -
位运算之对二的整数幂的模运算
整数 n 对 2的整数幂 的模运算 左移运算符 “<<” 表达式:a << b a”<<”b 的值是:将a各二进位全部左移b位后得到的值。左移时,高位丢弃,低位补0。 实际上,左移1位,就等于是乘以2,左移n位,就等于是乘以2n。而左移操作比乘法操作快得多。例如: 9 << 4 9的二进制形式:0000 0000 0000 0000 0000 0000 0000 1001原创 2017-03-01 19:56:35 · 1187 阅读 · 0 评论 -
位运算之两数交换
快速的两数交换 按位异或 ^ : 不相同 为:1 ; 相同 为 :0 将参与运算的两操作数各对应的二进制位进行异或操作, 即只有对应的两个二进位不相同时,结果的对应二进制位才是1,否则为0。异或运算的特点是: 如果 a^b=c,那么就有 c^b = a以及c^a=b。例如:表达式“21 ^ 18 ”的值是7(即二进制数111)。21: 1010118: 100102原创 2017-03-01 20:01:32 · 892 阅读 · 0 评论 -
位运算之判断二的正整数幂
给定整数 n 判断 n是否为 2的正整数幂表达式:(! (n & (n-1)) && n举个例子: n = 16 = 10000,n-1 = 15 = 1111那么 :10000 & 01111 = 00000 = 0 再举个例子: n = 256 = 10000000 ,n-1 = 255 = 11111111那么:100000000 & 011111111 = 000000000 = 0原创 2017-03-01 20:12:30 · 795 阅读 · 0 评论 -
位运算之判断奇偶性&1
一个整数 n,n&1 这个表达式 可以用来 判断 a的奇偶性。二进制的末位为 0表示偶数,末位为 1表是奇数。使用 n%2 来判断奇偶性 和 n&1 是一样的作用,但是 n&1 要快好多。 按位与:& 将参与运算的两操作数各对应的二进制位进行与操作, 只有对应的两个二进位均为1时,结果的对应二进制位才为1,否则为0 记住:在做位运算时,位数不够的数,自动在 前面补 0 比如:21原创 2017-03-03 14:37:27 · 13483 阅读 · 3 评论 -
位运算之快速幂
快速幂:利用二进制 对数据幂运算的一种高效算法 主要算法:对 整数的二进制位数 进行遍历 ,如果遍历到 1 临时值把结果乘上,如果遍历到 0,用临时变量跳过 举个例子:3的二进制是 11 最后一位为 1 , 进行 临时值与返回值 相乘,返回值为 3 ,临时值进行自乘运算 为 9,之后 N>>=1 右移一位 然后为第一位的 1 再次进行 临时值 与返回值 相乘 ,返回值 为原创 2017-03-02 22:23:38 · 1258 阅读 · 0 评论