swift位运算基础

//按位移运算符 <<、>>
/*
 按位左移运算符(<<)和按位右移运算符(>>)可以对一个数的所有位进行指定位数的左移和右移,但是需要遵守定义的规则。对一个数进行按位左移或按位右移,相当于对这个数进行乘以 2 或除以 2 的运算,将一个整数左移一位,等价于将这个数乘以 2,同样地,将一个整数右移一位,等价于将这个数除以 2。
 无符号整数的移位运算​:
 对无符号整数进行移位的规则如下:
 已存在的位按指定的位数进行左移和右移;
 任何因移动而超出整型存储范围的位都会被丢弃;
 用 0 来填充移位后产生的空白位。
 */
   let num1 = 0b101
   let num2 = num1 << 1 //左移右边补0  0b1010 = 10
    let num3 = num1 >> 1 //右移左边补0 0b010 = 2
    
    let shitfNum:UInt8 = 4 //0b100
    let value1 = shitfNum << 1
/*
 100
100 0 = 0b1000 = 16
 */
   let value2 = shitfNum >> 2
/*
 100

001 = 0b001 = 1
/
let value3 = shitfNum << 3
/

100
100 000 = 32
*/

   let value4 = shitfNum >> 1
/*
 100
  10 = 2
 */
 let pink = 0xCC6699
    let red = (pink & 0xFF0000)>>16 //分离出红色色值 0xCC = 204
    let green = (pink & 0x00FF00)>>8 //分离出绿色色值 0x66 = 102
    let blue = (pink & 0x0000FF) //分离出蓝色 0x99 = 153

// 按位与运算符 &

let numb1 = 0b101 & 0b111
/*
 0101
 0111
 0101 = 5
 */

//按位或运算
  let numm1 = 0b101 | 0b111 // 7
/*
 0101
 0111
 0111 = 7
 */

//按位取反运算符 ~
 0b101每一位上1变为0,0变为1
///
   let a0 = 0b101
    let a1 = ~a0 // 0b010 = 2
/*
 101
 010 = 2
 */

//按位异或运算符
 let a2 = 0b101 ^ 0b111 // 2
/*
 101
 111
 010 = 2
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值