体育资讯网

您现在的位置是:首页 > 分类11 > 正文

分类11

计算机存储的是补码还是源码(计算机存储的都是补码吗)

hacker2022-06-08 11:38:15分类1166
本文目录一览:1、寄存器里面是原码还是补码2、

本文目录一览:

寄存器里面是原码还是补码

在计算机系统中,数值一律用补码来表示(存储)。

在计算机中,并没有原码和反码。

既然计算机内部数据是以补码存储的,为什么还要有原码呢?原码和反码存在的意义是什么? 初学者请教大家

在计算机系统中,数值,一律用补码表示和存放。

补码,就是一个代替负数运算的正数。

比如 2 位 10 进制:

24 - 1 = 23

24 + 99 = (一百) 23

结果只取两位,就不用理会进位。

此时,+99 就能当做-1 使用。

同理,+98 就能当做-2。

。。。

这些正数,就是负数的补数。

补数的定义式:补数 = 负数 + 10^2。

利用补数,就是把负数变成正数,减法,就能用加法来实现。

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

计算机用二进制,补数,就改称:补码。

8 位 2 进制,范围是:0000 0000~1111 1111。

用十进制来说明,就是:0 ~ 255。

补码的定义式,就是: 补码 = 负数 + 2^8。

-1 的补码:-1 + 2^8 = 255 ( = 1111 1111)。

-2 的补码:-2 + 256 = 254 ( = 1111 1110)。

。。。

-128 的补码:-128 + 256 = 128 ( = 1000 0000)。

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

借助于补码,可用加法来实现减法,就可以简化计算机的硬件。

原码、反码,都没有这种功能。

因此,计算机中,并没有原码和反码。

所以,原码和反码,也没有任何理论上的定义。

计算机如何区别原码与补码

使用补码的意义在于:可把负数变正数,可把减法变加法。

从这个实用性来讲,计算机中,只是用补码。原码根本就不存在。

-------

计算机,是执行程序的。程序,都是由人,编写的。

所以,不是计算机来区别原码、补码。

而是由人,来区别。

-------

如果限定,只是使用两位十进制数 0~99,共有一百个。

那么,减一,就可以用 +99 代替:

24 - 1 = 23

24 + 99 = (1)  23

只保留两位,忽略进位,结果就是相同的。

99,就称为-1 的补数。

-------

看到了吗?出现了进位。

如果你忽略了进位,实际上就是减法运算!

--这时,99 就是补数,是当做-1 来用的。

如果不忽略进位,结果就是 1 百 23,这还是加法运算。

--此时,99,就是正常的数字。

。。。。。。

一个代码,到底是原来的数字,还是代表负数?

就看你怎么对待它了。

这些都是由编程人,来决定。

计算机,它才不管这些。

发表评论

评论列表

  • 忿咬哀由(2022-06-08 22:19:43)回复取消回复

    00~1111 1111。用十进制来说明,就是:0 ~ 255。补码的定义式,就是: 补码 = 负数 + 2^8。-1 的补码:-1 + 2^8 = 255 ( = 1111 1111)。-2 的补码:-2 + 256 = 254 ( = 1111 1110)。。。。-128 的补码:-

  • 温人青尢(2022-06-08 17:21:49)回复取消回复

    一律用补码表示和存放。补码,就是一个代替负数运算的正数。比如 2 位 10 进制:24 - 1 = 2324 + 99 = (一百) 23结果只取两位,就不用理会进位。此时,+99 就能当做-1

  • 余安几钵(2022-06-08 19:51:31)回复取消回复

    补码在计算机系统中,数值一律用补码来表示(存储)。在计算机中,并没有原码和反码。既然计算机内部数据是以补码存储的,为什么还要有原码呢?原码和反码存在的意义是什么? 初学者请教大家在计算机系统中