位运算、取余取模

l  取余和取模的共同点和区别

对于整数:

相同:无论取余还是取模都分两步:1)求整数商:c=a/b  2)计算模或余数:r=a-c*b

不同:取模在计算c值时,向0方向舍入(fix()函数)

      取余计算c时,向负无穷方向舍入(floor()函数)

7 mod 4 = 3(商 = 1 或 2,1<2,取商=1)

-7 mod 4 = 1(商 = -1 或 -2,-2<-1,取商=-2)

总结:当a、b符号一致时,结果一致;当a、b符号不同时,取余结果符号与a一致,取模结果符号与b一致

基本性质:

1)若p|(a-b),则a≡b (% p)。例如 11 ≡ 4 (% 7), 18 ≡ 4(% 7)

2)(a % p)=(b % p)意味a≡b (% p)

l  “|”逻辑或,双目运算,对应的二进制中只要其中一个对应位为1,结果对应位为1,否则结果对应位为0;

l  位逻辑运算符:

 & 位逻辑与  | 位逻辑或  ^ 位逻辑异或  - 位逻辑反  >> 右移  << 左移

 

l  移位运算

左移运算(<<)是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0。右移运算(>>)是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0。

例如,设无符号短整型变量a为0111(对应二进制数为0000000100010001),

则:a<<3 结果为0888(对应二进制数为0000100010001000),a不变(即运算式本身为一个值,但不改变被操作对象值)

转载于:https://www.cnblogs.com/SUHANG12138/p/11146767.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值