位运算符及其使用

 我来答
天罗网17
2022-07-08 · TA获得超过6190个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:73.2万
展开全部

参考文献 http://blog.csdn.net/baitxaps/article/details/50160125

最高位是符号位;0表示正数;1表示负数

· 正数的原码、反码、补码相同
123的原码:00000000 00000000 00000000 01111011
123的反码:00000000 00000000 00000000 01111011
123的补码:00000000 00000000 00000000 01111011

· 负数的原码是按照绝对值转换后,最高位补1;反码是除符号位外,所有位取反;补码为反码加1;
-123的原码:10000000 00000000 00000000 01111011
-123的反码:11111111 11111111 11111111 10000100
-123的补码:11111111 11111111 11111111 10000101

平时进行的运算实则是反码之间的运算。

① 判断奇偶性
a & 1 == 0 ,a为偶数;a & 1 == 1,a为基数;
②求平均数
(a & b) + ((a ^ b) >> 1)
③x,y交换数据
x ^= y ; y^=x ; x^=y
④求绝对值
(a ^ (a >> 31) - (a >> 31))
⑤判断一个数是否是2的冥
a & (a - 1) == 0
⑥相反数
(~x + 1)
⑦作为标志位
eg:
red = 0001
blue = 0010
yellow = 0100

0111:代表红蓝黄
0101:代表红黄

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式