大神帮忙看下这个位或运算谢谢

爱分享呀 2020-05-05 10:27:57
int a=-127; int b=127; int c=a|b; 请问c等于多少?简述过程 c=-1?这是为什么? int 是32位的 -127补码是1000 0000 0000 0000 0000 0000 0000 0001 127是0000 0000 0000 0000 0000 0000 0111 1111 两个对比是1000 0000 0000 0000 0000 0000 0111 1111 应该是-127呀为什么输出的是-1求大神帮忙解答下谢谢
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱吃鱼的ねこ 2020-05-06
  • 打赏
  • 举报
回复 1
所以或是32个1,即-1
爱分享呀 2020-05-06
  • 打赏
  • 举报
回复 1
引用 1 楼 爱吃鱼的ねこ的回复:
所以或是32个1,即-1
-127 原码1000 0000 0000 0000 0000 0000 0111 1111 反码1111 1111 1111 1111 1111 1111 1000 0000 补码1111 1111 1111 1111 1111 1111 1000 0001   127 原码0000 0000 0000 0000 0000 0000 0111 1111 反码0000 0000 0000 0000 0000 0000 0111 1111 补码0000 0000 0000 0000 0000 0000 0111 1111     补码1111 1111 1111 1111 1111 1111 1000 0001 补码0000 0000 0000 0000 0000 0000 0111 1111 位或1111 1111 1111 1111 1111 1111 1111 1111 原码1000 0000 0000 0000 0000 0000 0000 0001 位与0000 0000 0000 0000 0000 0000 0000 0001 谢谢,已经弄明白了,位或以后补码转回原码取返加1就对了 我之前就是卡在转回原码哪里了

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧