c/c++学习 No.1 位运算的学习

来源:互联网 发布:床单淘宝店知乎 编辑:程序博客网 时间:2024/06/05 08:14

二进制数

代码看这里

二进制:00000001十进制:1二进制:00000010十进制:2二进制:00000100十进制:4二进制:00001000十进制:8二进制:00010000十进制:16二进制:00100000十进制:32二进制:01000000十进制:64二进制:10000000十进制:-128
  • 二进制整数
    • 一个字节通常认为有8位 (16位)
  • 有符号整数
    • 二进制补码

位运算符

  • 按位取反:~
    • 将a每位上的1变为0,0变为1 代码看这里
    • 相当于~a = -a - 1
  • 位与:&
    • 只有a和b对应位同为1的时候才为1 代码看这里
    • 掩码:将某些位设置为开(1)而某些位设置为关(0) 代码看这里
    • 关闭位:不影响其他位,只关闭特定位 代码看这里
    • 查看一位的值 代码看这里
  • 位或:|
    • 要有a和b的对应位上有一个1就为1 代码看这里
    • 打开位:打开某一个特定的位(1),同时其他位保持不变 代码看这里
  • 位异或:^
    • 对于a和b的对应只有一个1的时候才为1 代码看这里
    • 转置位:将特定位转置,1设置为0,0设置为1,并且不影响其他位 代码看这里

移位运算符

  • 左移:<<
    • 将a的每位向左移动,移动的位数由b决定 代码看这里
    • 求a乘以2的b次幂
  • 右移:>>
    • 将a的每位向右移动,移动的位数由b决定 代码看这里
    • 循环取多个位

三个实例

  • 二进制与十进制相互转换 代码看这里
  • 转置一个值中的最后n位 代码看这里
  • 用一个字节控制8个家电的开和关 代码看这里
0 0
原创粉丝点击