社区
C语言
帖子详情
0取反为什么是-1呢?
yukiwang313
2011-03-14 03:44:51
需要解题步骤啊
...全文
2840
11
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
11 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
h100037
2011-03-14
11111111111111111111111111111111 是补码, 计算机里的表现形式
10000000000000000000000000000001 是源码, -1
源码符号位不变,求反 + 1 就是补码。
所以-1在计算机里就是11111111111111111111111111111111, 0 求反刚好是11111111111111111111111111111111
打赏
举报
回复
赞
masmaster
2011-03-14
负数在计算机里以补码的形式存在
打赏
举报
回复
赞
yukiwang313
2011-03-14
10000000000000000000000000000001是补码吧?怎么会是原码
打赏
举报
回复
赞
h100037
2011-03-14
不大好意思, 说错了, 是补码, 不是反码
负数以补码形式存储
打赏
举报
回复
赞
h100037
2011-03-14
10000000000000000000000000000001 是源码, 就是 -1
打赏
举报
回复
赞
zhengjiankang
2011-03-14
-1 是 0x80000000 也就是10000000000000000000000000000000.
打赏
举报
回复
赞
h100037
2011-03-14
计算机内, 负数已反码形式存储, 符号位不变, 源码求反加1, 就是反码
11111111111111111111111111111111 就是
10000000000000000000000000000001 求反 11111111111111111111111111111110
加1 就是 11111111111111111111111111111111
打赏
举报
回复
赞
yukiwang313
2011-03-14
还是不理解。我知道取反是把0变成1,1变成0,然后符号位的区别只是最高位一个是0 一个是1 那其余位呢?加起来怎么是变成-1的????
打赏
举报
回复
赞
bdmh
2011-03-14
带符号和不带符号的区别,带符号的最高位代表符号位
打赏
举报
回复
赞
yukiwang313
2011-03-14
11111111111111111111111111111111为什么会是-1呢?8懂
打赏
举报
回复
赞
pathuang68
2011-03-14
0 = 00000000000000000000000000000000
取反11111111111111111111111111111111
如果是带符号的,上面就是-1
打赏
举报
回复
赞
相关推荐
1
的
取反
为什么是-2的详细解析
先求取
1
的
取反
,也就是将
1
的二进制数
1
变成
0
,
0
变成
1
.
1
的源码为
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
的
取反
为
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
接下来就是对
1
取反
的数进行分析
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...
~
0
为什么等于 -
1
,在C语言中?
因为 负数的补码是
取反
+
1
。 所以此处逆向操作需要 -
1
取反
即
1
1
0
0
0
0
1
1
-
1
==
1
1
0
0
0
0
1
0
(第一步逆向操作)
1
1
0
0
0
0
1
0
=>
取反
=>
0
0
1
1
1
1
0
1
=> 十进制的 6
1
最后结果 A == 6
0
, ~A = -6
1
C
计算机负数是
取反
加
1
,为什么 负数原码
取反
+
1
= 补码 ???
1
. 如何取得反码假如一串数字中只有m,n这两个数,那么mn我们如何
取反
我们需要用m+n这个和来减去每一位就能得到nm,就得到反了在二进制中除了
0
就是
1
,
取反
就更简单了于是就有
0
1
0
1
取反
,使用
1
+
0
=
1
减去每一位
1
1
1
1
-
0
1
0
1
...
java中按位
取反
~5=-6
java中按位
取反
~5=-6。原因:这是因为整数在计算机中是二进制存储的。java中 ~5=-6 ,而这个-6是输出到屏幕上,我们看到的是-6。首先看对5求反,5的二进制原码是:
0
0
0
0
0
1
0
1
,
取反
之后是:
1
1
1
1
1
0
1
0
,得到的这个值...
计算机负数是
取反
加
1
,负数补码是
取反
加一,但-42
取反
后末位是
1
,如何加
1
?
负数补码是
取反
加一,但-42
取反
后末位是
1
,如何加
1
?...您好,负整数的补码,将其对应正数二进位制表示所有位
取反
包括符号位,
0
变
1
,
1
变
0
后加
1
正42 ,的二进位制
0
0
1
0
1
0
1
0
负42 ,反取各位
1
1
0
1
0
1
0
1
最...
发帖
C语言
加入
微信扫一扫
点击复制链接
分享社区
下载分享明细
6.6w+
社区成员
24.2w+
社区内容
C语言相关问题讨论
社区管理员
申请成为版主
帖子事件
创建了帖子
2011-03-14 03:44
社区公告
暂无公告