21天学通C语言-学习笔记(11)

位运算操作

使用位运算操作符可以将一个存储单位中的各个二进制位进行处理。向内存读取和写入数据的最小单位是字节,字节在操作系统中可以可以分为更小的单元“位”。如果一个字节的内容是“01101010”,其对应的值是106。但是在操作系统中,数值的存储并不是直接以其二进制存储的,而是以补码来存储的。

这里复习一下补码:非负数的补码与原码相同;负数的补码的符号位是1,其余位为将该数绝对值的原码按位取反后再加1的结果。

位运算操作符

  1. 取反(~):对所有位进行按位取反
  2. 位或(|):将两个操作数逐位进行位或运算,只要有一个数值为1,位或的结果便是1;如果都为0,位或的结果为0。
  3. 位与(&):将两个操作数逐位进行位与运算,只要有一个数值为0,位与的结果便是0;如果都为1,位与的结果为1。
  4. 异或(^):两个数一样,则值为0,如果不一样,值为1。
  5. 位移操作符:有符号位的右移有两种:算术右移(仍为负数)和逻辑右移(为正数)。大部分的系统采用算术右移。左移一位相当于乘2;左移 n
    位,相当于乘2 的 n 次方。

位运算赋值操作符

就是将位操作符与赋值操作符组合在一起(除了取反操作)。
比如:a &= b; 相当于 a = a & b;

循环移位:移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端;而循环右移时,用从右边移出的位填充字的左侧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值