前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >按位取反~运算_按位与按位或按位异或运算符

按位取反~运算_按位与按位或按位异或运算符

作者头像
全栈程序员站长
发布2022-09-22 20:08:54
发布2022-09-22 20:08:54
1.7K0
举报

大家好,又见面了,我是你们的朋友全栈君。

按位取反~运算 首先我们来看按位取反的概念

按位取反运算符:对数据的每个二进制位取反,即把0变成1,把1变成0.

即~x=-x-1

这里按照定义

9的二进制为00001001 其按位取反为11110110 结果为-10

这个过程没有任何问题,但是如果忘记了负数的二进制表达方式,就会对这个结果产生疑问,为什么11110110表示-10而不是503?理解按位取反的关键是理解11110110为什么表示-10,也就是负数的二进制表达方式。

现在计算机普遍使用补码表示负数。

知道补码,求源码的方式是:值取反再加1。 补码的第一位符号位决定了源码的正负,第一位为0源码为正,第一位为1源码为负。

现在我们可以理解上面那个例子,9按位取反后得到11110110,其第一位为1,源码为负值。 取反后为00001001,再加1得00001010,其值为10,再加上负号即为-10。

也即 ~9=-10

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170471.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 按位取反~运算 首先我们来看按位取反的概念
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档