b2c信息网

您现在的位置是:首页 > 前天新闻 > 正文

前天新闻

负128为什么没有源码(负127的原码)

hacker2022-06-14 06:30:19前天新闻84
本文目录一览:1、什么么负128有补码???没原码反码要补码做什么???为什么要这么规定???

本文目录一览:

什么么负128有补码??? 没原码 反码 要补码做什么??? 为什么要这么 规定???

推断-128的原码和补码(用补码=

反码+1)

1.关于原码1000

0000,表示的是-0,还是-128呢?(答案是-128而不是-0)

1.先看看原码的概念吧:正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值

2.0是负数吗?0既不是正数也不是负数,那么它的符号位到底是0还是1呢?(0的符号位为0,不能为1)

3.看看负数补码的公式:负数的补码=10000

0000(模)-数的绝对值

比如:-1

1111

1111

=10000

0000-0000

0001

-2

1111

1110

=10000

0000-0000

0010

现在假设-0为负数,那么

-0的补码应该是10000

0000

-

0(这个0,姑且教0的绝对值吧)=0000

0000

反码:1111

1111(0000

0000

-1=0000

0000

+1111

1111=1111

1111)

原码:1000

0000

现在来推-128

-128的补码:10000

0000

-

1000

0000(+128没有符号位)=1000

0000

反码:1111

1111(1000

0000

-1=1000

0000+1111

1111=1111

1111)(补码-1)

原码:1000

0000(反码取反)

从上面看来,一个原码对应了2个补码

但是仔细分析:原码的概念,负数的符号位为1,但是0不是负数,所以不能用此公式

0也不是正数,但是可以把0定义为原码、反码和补码都一样(即0000

0000)

而且据说可以推断出0的补码只有一个(有兴趣的

可以去推一下,呵呵)

现在原码1000

0000就唯一表示-128了,而不会表示出-0,因为-0不能用这个公式计算

现在,补码1000

0000的原码是1000

0000(已证明),那么原码1000

0000的补码是1000

0000吗?

原码

1000

0000

(-128,进位被舍去)

反码

1111

1111

补码

1000

0000(1111

1111(反码)

+

1=1000

0000,这里实际上真正相加的是1111

1111后面的7位,

第1位是符号位始终不会变,所以,当进到第8位的时候,就表示溢出了,会被舍弃)

2.综上所述:1.-128的补码和原码一样都是1000

0000,

2.0的原码、反码和补码都一样(即0000

0000)

3.如果把-0当做负数,1000

0000就会有歧义(事实上0的补码只有一个0000

0000)

-128的原码有没有

原码,在计算机里面是不存在的。

研究原码干什么?

原码的范围:-127~+127,其中含有两个零。

原码没有用的。

输入到计算机里面,都是使用补码。

原码只是写在纸上,其功能,也就是来求补码。

但是,-128,还并不是用原码求出来的。

参考一下:

怎么理解-128的原码是 1000 0000 ,补码也是1000 0000 。

怎么理解 128 的原码是 1000 0000 ,补码也是 1000 0000。

另外, -127 的原码是 1111 1111 , 为什么 -128 就成了 1000 0000

------------------

在码长八位时,-128 并没有原码反码,只有补码:1000 0000。

求-128 的补码,取反加一,是不好用的。

必须用“补码的定义式”才能求出-128 的补码。

定义式如下:

负数的补码 = 2^n -| 负数 | = 256 + 对应的正数。

零和正数,不用变,直接参加计算。

发表评论

评论列表

  • 假欢戏侃(2022-06-14 14:59:05)回复取消回复

    应的正数。零和正数,不用变,直接参加计算。

  • 夙世亡鸦(2022-06-14 07:46:19)回复取消回复

    先看看原码的概念吧:正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值2.0是负数吗?0既不是正数也不是负数,那么它的符号位到底是0还是1呢?(0的符号位为0,不能为1)3.看看负数补码的公式:

  • 世味萌辣(2022-06-14 08:40:39)回复取消回复

    0还是1呢?(0的符号位为0,不能为1)3.看看负数补码的公式:负数的补码=100000000(模)-数的绝对值比如:-111111111=100000000-00000001-211111110=100000000-00000010现在假设-0为负数,那么-0的补码应该是100000000

  • 莣萳等灯(2022-06-14 09:26:27)回复取消回复

    128 就成了 1000 0000------------------在码长八位时,-128 并没有原码反码,只有补码:1000 0000。求-128 的补码,取反加一,是不好用的。必须用“补码的定义式”才能求出-128 的补码。定义式如下:负数的补码 = 2^n -|