位运算

断了今生、忘了曾经 提交于 2020-03-06 03:46:49

# 数值表示

1)补码表示:-n=~n+1
2)经验值数:0x3f3f3f3f。 不会溢出 用于最大值的定义
3)二进制数下标从0开始
4)返回n的最后一位1:lowbit(n) = n & -n

# 移位操作

1)1<<n=2^n
2)n<<1=2n
3)算数右移 正数补0,负数补1
4)n>>1=[n/2.0](下取整)
5)b&1 取出b在二进制下表示的最低位
6)b>>1 舍去二进制下的最低位
7)(n>>k)&1 取出整数n在二进制表示下的第k位
8)n & ( (1<<k)-1) 取出整数在二进制表示下的第0~k-1位(后k位)
9)n xor (1<<k) 把整数 n 在二进制下表示的第k位取反
10)n | (1<<k) 把整数n在二进制表示下的第k位赋值1
11)n & (~(1<<k)) 对整数n在二进制表示下的第k位赋值0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!