导航:首页 > 数据处理 > 机器数据补码为什么是唯一的

机器数据补码为什么是唯一的

发布时间:2022-11-12 14:18:01

Ⅰ 注:数0的补码表示是唯一的: +0的补码=+0的反码=+0的原码=00000000 -0的补码=11111111+1=00000000(mod 2

正数的原码,反码,补码都是一样的,0的原码和反码都有两个,但是0的补码是唯一的。

负数的原码是机器字长的首个数值位为1;反码是原码除首位为1外,其他数值取反,(1变成0,0变成1);补码就是反码再加1。
假设机器字长8位,则
-0的原码1000,0000, -0的反码就是1111,1111,-0的补码就是反码加1后变成1,0000,0000,首位溢出后抛弃,变成-0的补码还是0000,0000。
个人感觉有+0和-0才会出现混乱,数学上的1+(-1)=0,那到计算机里应该是-0还是+0啊,(反正自己没法理解+0和-0),最后只能用补码来进行负数的计算,结果才会正确。

Ⅱ 整数0的补码为什么只有一种形式000……0

0的原码是不惟一的:[+0]原=00000000,[-0]原=10000000
0的反码也是不惟一的:[+0]反=00000000,[-0]反=11111111
与原码和反码不同,0的补码是惟一的,这可由补码的定义得到。对于n=8,有
[+0]补 = [+0]反 = [+0]原 = 00000000
[-0]补 = [-0]反 + 1 = 11111111 + 1 = 00000000(mod 2的8次方)
即对8位字长来讲,最高位的进位(2的8次方)按模256运算被舍掉,所以[+0]补=[-0]补

Ⅲ 补码到底是怎么一回事

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

补码,实际上,就是一个“代替负数”的【正数】。

使用了补码(正数)之后,在计算机中,就没有负数了。

随之而来的就是:减法运算,也都不存在了。

所以,借助于补码,计算机只需要配置一个加法器,就能走遍天下。

使用补码的目的,也就是:简化计算机的硬件。

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

补码(一个正数),怎么就能代替负数呢?

你看时针:倒拨 3 小时,可以用正拨 9 小时代替吧?

你看三角函数:-π/2、+3π/2,两者的函数值也是相同的吧?

10 进制数,如果限定只用 2 位 ,那么就会有:

25 - 1 = 24

25 + 99 = (一百) 24

如果忽略进位一百(10^2),+99 就可以代替-1。

上面所说的这些正数,就是“负数的补数”。

求补数的公式,你自己可以推出,即:

补数(即正数)= 负数 + 周期。

正数,必须直接参加运算,不可再做任何变换。

就是说:

正数,本身就已经是正数了,它并不存在什么补数。

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

计算机用二进制,补数,那就称为“补码”了。

8 位 2 进制的周期,是:2^8 = 256。

-1 的补码,就是:-1 + 256 = 255 = 1111 1111(二进制)。

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

。。。

-128 的补码,就是:128 = 1000 0000。

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

至此,你就可以推出“补码的定义式”:

当 X >= 0, [ X ]补 = X; 零和正数不用变换。

当 X < 0, [ X ]补 = X + 2^n。n 是补码的位数。

这是通用的公式。

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

计算 5 - 7 =-2,用八位补码计算如下:

5=0000 0101

[-7]补码 =1111 1001

--相加-----------

得:(1)1111 1110= [-2]补码

舍弃了进位,结果,就是正确的。

Ⅳ 计算机中的所有数字都是用补码来表示吗

不是,只有有符号数才用补码表示。比如8位有符号数表示范围是-128~127,而无符号数就可以表示0~255。计算机采用补码是为了有符号数中0的表示的唯一性,并且可以把减法转换成加法来运算。除了数字,计算机中还有很多其他的数据,比如说字符等,这些都不用补码表示。

Ⅳ 计算机为什么用补码存储数据

使用补码的好处:
1.
可加法代替减法运算,[a-b]补
=
[a]补+[-b]补
简体了计算机运算硬件电路,提高运算效率:
2.
统一了正0和负0
原码及反码的正0、负0有不同的表示,补码的0是唯一的,
例如字长8位,补码的0表示为唯一的00000000

Ⅵ 为什么在机器数补码中,零的表示是唯一的。

对于(+0)和(-0),在人们的计算概念中零是没有正负之分的.(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大).

于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在用字节表示时补码中用(-128)代替了(-0),所以用字节表示的补码的范围为:

(-128~0~127)共256个.

注意:(-128)没有相对应的原码和反码。

Ⅶ 请问计算机的补码总为什么0有唯一的补码,即[+0]=[-0]=00000000[-0]不应该不是这样吗

貌似是因为计算机中没有+0和-0的区别。拿8位机举例:如果有正零和负零的区别的话计算机一位的长度只能表示-127~+127共255个数,但是如果把1000,0000即我们认为的-0判断成+128就能多表示一个数。为了功能更强大,所以设计人员让计算机内部就不区别+0,-0所以也就不存在-0这个东东,所以0的补码是唯一的也就是+0的补码.

Ⅷ 计算机为什么用补码存储数据

补码的功能,类似于:

时针倒拨 3 小时,与正拨 9 小时,效果相同。

利用这种思路,计算机中的负数,也可以改为正数(即补码)。

同时,减法运算,也就可以用加法运算代替了。

那么,借助于补码,就能统一加减法,够简化计算机的硬件。

十进制比较容易理解:

25 - 1 = 24

25 + 99 = (一百) 24。

只要忽略进位,+99 就能代替-1。

+99 就称为-1 的补数。

在这里用了 2 位 10 进制。

求补数的算法:补数 = 负数 + 10^2。

通用的公式是:补数 = 负数 + 10^n。n 是位数。

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

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


一个字节,是 8 位 2 进制。

计数范围是:0000 0000 ~ 1111 1111(十进制 255)。

计数周期是:2^8 = 256。


求补码的算法:负数的补码=负数+2^n。

那么:

-1 的补码=-1 + 256 = 255 = 1111 1111。

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

。。。


例如,7-2 = 5,用补码计算如下:

7 =0000 0111

[-2] 补 =1111 1110

---相加------------

得:(1)0000 0101= 5

舍弃进位,结果就完全正确。

借助于补码,负数就没有了,从而就把“减法转换为加法运算”。

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

补码的来源,与原码反码毫无关系。

“原码反码取反加一、符号位也能参加运算”...

这些,都没有什么理论依据。

从“取反加一”来学习补码,就弄不清楚“为什么用补码”。

Ⅸ 为什么“对于真值0,源码有两种不同的表现形式,而补码却只有唯一的一种表现形式.”

0可以是+0,也可以是-0
0的原码为:10000(-0),00000(+0)
+0的补码和原码相同,为00000
-0的补码是在-0的原码(10000)的基础上,符号位不变,其它位按位取反再在低位加1(11111+1=00000),进而得到-0的补码00000
所以补码表示0只有一种情况00000.而原码则表示了两次,分别为10000和00000.
希望可以帮到你,谢谢!

阅读全文

与机器数据补码为什么是唯一的相关的资料

热点内容
数据库字段对应的实体类怎么写 浏览:96
连锁市场规划如何列名单 浏览:403
为什么给客户配置存款产品 浏览:693
工业信息局是什么编制 浏览:137
小渔市场怎么样 浏览:871
如何用婉转的话说老公不回信息 浏览:962
淘宝万宝路怎么交易 浏览:624
华中数控程序如何校验 浏览:847
怎么样介绍产品和文字 浏览:362
临沂代理记账多少一年 浏览:416
抚州抖音小程序开发一般多少钱 浏览:518
正规人事代理有哪些 浏览:382
猫达人微信小程序是什么 浏览:507
华为的接入技术主要有哪些 浏览:321
如何规范编辑群信息 浏览:188
云悠悠神秘交易行在哪里 浏览:537
飞机控制程序用什么编程 浏览:308
腾讯文档怎么批量筛选数据 浏览:735
cmd如何结束一个正在运行的程序 浏览:506
solidcam程序编辑后处理在哪里 浏览:755