打印
[STM32]

-0和+0在内存里面分别怎么存储-0和+0在内存里面分别怎么存储

[复制链接]
2183|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liguang02|  楼主 | 2014-11-17 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[size=14.3999996185303px]十进制数 原码 反码 补码
[size=14.3999996185303px]+0 00000000 00000000 00000000
[size=14.3999996185303px]-0 10000000 11111111 00000000
还是会
[size=14.3999996185303px]-0 10000000 11111111 10000000

相关帖子

沙发
dirtwillfly| | 2014-11-17 11:13 | 只看该作者
0存储的时候都是一样的。我是这样理解的:-0和+0常见的就是仪表显示的时候,代表比0大还是小一个很微小的数

使用特权

评论回复
板凳
ayb_ice| | 2014-11-17 11:45 | 只看该作者
-0等于+0

使用特权

评论回复
地板
yewuyi| | 2014-11-17 13:25 | 只看该作者
没有-0

使用特权

评论回复
5
airwill| | 2014-11-17 13:49 | 只看该作者
本帖最后由 airwill 于 2014-11-18 07:17 编辑

关于 -0 和 +0.
通常在整数 (int) 变量中, 数据采用补码形式, 那么 0 只对应一个值,没有正负的(或者就是正数, 因为符号位为0).
所以出现 -0 和 +0 的情况只是在浮点数中. 因为浮点数其实没有0, 只有无穷小, 我们的嵌入式编译器将能表示的最小的值当做0看待. 于是出现了  -0 和 +0 .
如果浮点变量的存储内存用 uint32 的方式看, +0 就是 0x00000000, -0 就是 0x80000000.

请看介绍帖:  https://bbs.21ic.com/icview-834852-1-1.html

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
liguang02 + 3 很给力!
6
ayb_ice| | 2014-11-17 14:07 | 只看该作者
airwill 发表于 2014-11-17 13:49
关于 -0 和 +0.
通常在整数 (int) 变量中, 数据采用补码形式, 那么 0 只对应一个值,没有正负的(或者就是正 ...

实际上
0x80000000代表负的最大,就是2147483648-1(2^31 - 1)

使用特权

评论回复
7
liguang02|  楼主 | 2014-11-17 14:50 | 只看该作者
ayb_ice 发表于 2014-11-17 14:07
实际上
0x80000000代表负的最大,就是2147483648-1(2^31 - 1)

我们知道在计算机系统中,数值一律用补码来表示(存储)。主要原因是使用补码,可
以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数
相加时,如果最高位(符号位)有进位,则进位被舍弃,
按照他的说法,
-0 10000000 11111111
11111111+1不是10000000么?这时候最高位有进位,舍弃所以还是 10000000还是不舍弃成为00000000?
那么 -1加-1是不是会变成
11111111加上11111111
结果为11111110还是01111110呢?

使用特权

评论回复
8
liguang02|  楼主 | 2014-11-17 15:07 | 只看该作者
liguang02 发表于 2014-11-17 14:50
我们知道在计算机系统中,数值一律用补码来表示(存储)。主要原因是使用补码,可
以将符号位和其它位统 ...

哦,好像最高位进位还是11111110

使用特权

评论回复
9
ayb_ice| | 2014-11-17 15:30 | 只看该作者
本帖最后由 ayb_ice 于 2014-11-17 15:31 编辑

错了一点

0x80000000就是负的最大,就是-(2^31)...,0x80就是负的128


使用特权

评论回复
10
xlsbz| | 2014-11-17 18:38 | 只看该作者
楼主基础不扎实啊。正零,和负零都是0啊。这个上中学就知道

使用特权

评论回复
11
xlsbz| | 2014-11-17 18:39 | 只看该作者
airwill 发表于 2014-11-17 13:49
关于 -0 和 +0.
通常在整数 (int) 变量中, 数据采用补码形式, 那么 0 只对应一个值,没有正负的(或者就是正 ...

长知识。没用过浮点数。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

307

帖子

2

粉丝