前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >按位取反操作_按位取反末尾加一

按位取反操作_按位取反末尾加一

作者头像
全栈程序员站长
发布2022-09-21 10:31:56
8990
发布2022-09-21 10:31:56
举报

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

编程时: ~1 输出结果为 -2 ,~(-5)的输出结果为 4,很是疑惑,通过查阅资料终于明白。

首先~是取反操作,计算机存储时是按照补码存储。

~1 = -2

计算步骤:

1的二进制表示——————————–0000 0001

按位取反—————————————-1111 1110 (计算机以补码形式存储,所以要求11111110的补码)

求补码——————————————-1000 0010(11111110除符号位,其他位取反加一)

因此 ~1 =-2

再看负数取反操作 ~(-5)= 4

-5 的二进制表示 —————————————–1000 0101 (求补码)

-5的补码 —————————————————1111 1011

按位取反 —————————————————0000 0100 (等于4)

正整数的补码还是正整数的二进制表示,负整数的补码除符号位其他位取反加一,计算机内都以补码的形式存储

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档