位运算各种方法总结 |
您所在的位置:网站首页 › 计算机八进制运算法则 › 位运算各种方法总结 |
位运算
1、按位与2、按位或3、按位取反4、按位异或5、按位同或6、左移7、带符号右移8、无符号右移9、python实现各种位运算操作10、位运算小技巧11、应用
\quad \quad 现代计算机中,几乎都是二进制计算机(三进制计算机仅有少量),所有的数据都以二进制的形式存储在设备中。位运算就是直接对整数在内存中的二进制位进行操作,计算时将十进制转为 二进制,再进行计算。 \quad \quad 需要注意,位运算是针对 二进制 的运算,对每一个位进行布尔运算操作。所以 手动 进行 位运算计算 时,需要将数转换成二进制的表示形式,再进行计算。 1、按位与\quad \quad 计算时将 十进制 转为 二进制 再进行计算,同位置为1,则结果为1,其余情况皆为0 结论:n&(n-1) 会去除 n 的位级表示中最低的那一位 1。应用例题:二进制中1的个数 2、按位或\quad \quad 对应位上有一个为1,结果就为1。两个都为0,结果才得0,类似加的关系。 3、按位取反\quad \quad 对每一位进行取反操作,如果是1则结果为0,是0则结果为1。即为反码 4、按位异或\quad \quad 当两个对应位不同时结果才为1,相同时得0. 性质: 任何数和 0做异或运算,结果仍然是原来的数,即a⊕0=a。 任何数和其自身做异或运算,结果是 0,即 a⊕a=0。 异或运算满足交换律和结合律,a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。 5、按位同或\quad \quad 当两个对应位相同时结果才为1,不同时得0. 6、左移\quad \quad 将二进制位上的数向左移动,右边补0. 7、带符号右移\quad \quad 有符号整数最高位代表着数的正负,最高位为1代表负数,最高位为0代表正数。 \quad \quad 带符号右移是右移时,左边补充最高位上的值。 8、无符号右移\quad \quad 二进制上的数向右移动,右移时左边补0。 9、python实现各种位运算操作 位运算符说明使用形式&按位与a&b|按位或a|b~按位取反~a^按位异或a^bb-转换为负数-a 10、位运算小技巧1、获取二进制中最右边的1,且其它位置为0: X & (-X) 因此,x 和 −x 只有一个共同点:最右边的 1。这说明 x & (-x) 将保留最右边的 1。并将其他的位设置为 0。 2、将二进制中最右边的1置为0: X & (X - 1) (x - 1) 代表了将 x 最右边的 1 设置为 0,并且将较低位设置为 1。 再使用与运算:则 x 最右边的 1 和就会被设置为 0,因为 1 & 0 = 0。 11、应用Leetcode之位运算 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |