zoukankan      html  css  js  c++  java
  • 位运算的使用技巧

    1、左移n位就是乘以2的n次方,右移n位就是除以2的n次方

    2、flages特性的使用 https://www.cnblogs.com/netqq/p/9383144.html  总的来说是对于2^n 次方之间位运算和运算结果的还原和 匹配

       例如1、2、4、8 这几个数字

    10进制 2进制
    1 00000001
    2 00000010
    4 00000100
    8 00001000
    16 00010000

       举个例子:7=1|2|4  不信请看:00000001|00000010|00000100=00000111    

       举个例子:7&2=2    不信请看:00000111&00000010=00000010(=2) 这说明了什么,说明了  7这个值中含有 2这个值,用于确定一个数字中是否含有另外一个数字

       举个例子:7^2=5   (=1|4)  不信请看:00000111^00000010=00000101 (=5) 这说明了什么,说明了 从7中去掉了2,这用于从一个数字中去掉一个数字

       举个例子:5^2=7  不信请看:00000101^00000010=00000111(=7) 这说明了什么,互相异或后可以还原值

         举个例子:7|8=15    不信请看:00000111|00001000=00001111(=15) 这说明了什么,|运算像是加法,^运算像是减法,&运算保留较小的数仅限于2^n次方之间

         举个例子:2|4=6       不信请看 00000010|00000100=00000110   (=6) 这说明了什么,说明了一个用语言不太好描述的规则,一个非2^的偶数的计算规则,看表格找规律

    14 8|4|2
    12 8|4
    10 8|2
    6 4|2
    18 16|2
    20 16|4

      发现一个规律:任何一个非2^n次方的数,都修要 2^(n-1) 的数参与| 运算,例如:9 需要8 |1参与,10需要8|2  ,11需要 8|4 ,13需要8|4|1  ,14需要8|4|2

    3、准备中

  • 相关阅读:
    js Bom Dom
    2019西安多校联训 Day1
    数论——扩展欧几里德
    MySQL InnoDB引擎行格式、数据页简析
    centos7安装ansible并简单设置k8s集群节点hosts文件
    Redis缓存穿透和雪崩
    Redis主从复制——哨兵模式
    Redis主从复制——非哨兵模式
    Redis发布订阅
    Redis持久化——RDB与AOF
  • 原文地址:https://www.cnblogs.com/netqq/p/13092680.html
Copyright © 2011-2022 走看看