请高手解释一下为什么-128用二进制表示为1000000000000000? 20

详细点128是负数... 详细点128是负数 展开
 我来答
做而论道
高能答主

2012-02-24 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
-128的8位补码是:1000 0000B,换算成十进制就是 128。
负数的补码,是用“模”计算出来的,即:
[X]补 = 256 - |X| = 256- |-128| = 128。
不要用“求反加一”来算,那只不过是一个经验公式而已。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,具有以下基本参数:1. 工作频率:72MHz2. 外部时钟:最高可达120MHz3. 存储器容量:64K bytes4. 数据总线宽度:32位5. 输入/输出端口... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
盼兰八
2022-01-23 · TA获得超过1830个赞
知道小有建树答主
回答量:409
采纳率:91%
帮助的人:16.4万
展开全部
这是一个非常特殊的带符号位二进制编码数,表示的是十进制的-128;
补码:1000 0000;
反码:补码减1,1000 0000-1=1111 1111(低位向高位逐次借1,符号位保持不变);
原码:反码取反,符号位保持不变,可推出原码为1000 0000;
从上面的推导中我们发现了一个很有趣,很有意思的现象,那就是这个负数的补码和原码居然是一样的,都是1000 0000,从原码最“原始”的理解,这个数“应该”是表示十进制的-0,那么问题出来了,8位带符号位的二进制编码数0000 0000也表示十进制的0(-0也是0),那岂不是有两个8位二进制编码数都表示十进制的0吗?有冲突了!为了解决这一问题,计算机编码领域统一明文规定,这个补码表示十进制纯数学结果128的负数,也就是-128,以避免出现-0的情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tcwhh
2012-02-24
知道答主
回答量:11
采纳率:0%
帮助的人:1.7万
展开全部
严格来说在数学上,-128应该表示成-10000000(7个0),但是由于在计算机中每一位的信息只有两种,既高低电位,在逻辑上用0和1来表示,所以为了表示正负数,就规定在从左往右的第一位表示数的符号,0是正,是负,而后面的部分才是数值部分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
63594493
2012-02-23 · TA获得超过481个赞
知道小有建树答主
回答量:952
采纳率:0%
帮助的人:341万
展开全部
用128反复除以2取余数,再从下往上把余数写出来就行了。比如128除以2得64,余数是0,就是问号前的第一个0,再把64除以2得32,余数是0就是问号前的第二个0,就这样就出来了。 最前面那个1表示“-”号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式