汉邦问答 / 问答 / 问答详情

计算机原码、反码、补码的最大值和最小值各是什么?

2023-06-26 09:19:58
TAG:
gitcloud
请我给你的详解:
原码、补码和反码

(1)原码表示法

原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作〔x〕原。

例如,X1= +1010110

X2= 一1001010

其原码记作:

〔X1〕原=[+1010110]原=01010110

〔X2〕原=[-1001010]原=11001010

原码表示数的范围与二进制位数有关。当用8位二进制来表示小数原码时,其表示范围:

最大值为0.1111111,其真值约为(0.99)10

最小值为1.1111111,其真值约为(一0.99)10

当用8位二进制来表示整数原码时,其表示范围:

最大值为01111111,其真值为(127)10

最小值为11111111,其真值为(-127)10

在原码表示法中,对0有两种表示形式:

〔+0〕原=00000000

[-0] 原=10000000

(2)补码表示法

机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作〔X〕补。

例如,[X1]=+1010110

[X2]= 一1001010

[X1]原=01010110

[X1]补=01010110

即 [X1]原=[X1]补=01010110

[X2] 原= 11001010

[X2] 补=10110101+1=10110110

补码表示数的范围与二进制位数有关。当采用8位二进制表示时,小数补码的表示范围:

最大为0.1111111,其真值为(0.99)10

最小为1.0000000,其真值为(一1)10

采用8位二进制表示时,整数补码的表示范围:

最大为01111111,其真值为(127)10

最小为10000000,其真值为(一128)10

在补码表示法中,0只有一种表示形式:

[+0]补=00000000

[+0]补=11111111+1=00000000(由于受设备字长的限制,最后的进位丢失)

所以有[+0]补=[+0]补=00000000

(3)反码表示法

机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作〔X〕反。

例如:X1= +1010110

X2= 一1001010

〔X1〕原=01010110

[X1]反=〔X1〕原=01010110

[X2]原=11001010

[X2]反=10110101

反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。

例1. 已知[X]原=10011010,求[X]补。

分析如下:

由[X]原求[X]补的原则是:若机器数为正数,则[X]原=[X]补;若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[X]补=[X]原十1,即

[X]原=10011010

[X]反=11100101

十) 1

[X]补=11100110

例2. 已知[X]补=11100110,求〔X〕原。

分析如下:

对于机器数为正数,则〔X〕原=〔X〕补

对于机器数为负数,则有〔X〕原=〔〔X〕补〕补

现给定的为负数,故有:

〔X〕补=11100110

〔〔X〕补〕反=10011001

十) 1

〔〔X〕补〕补=10011010=〔X〕原

或者说:

数在计算机中是以二进制形式表示的。
数分为有符号数和无符号数。
原码、反码、补码都是有符号定点数的表示方法。
一个有符号定点数的最高位为符号位,0是正,1是副。

以下都以8位整数为例,

原码就是这个数本身的二进制形式。
例如
0000001 就是+1
1000001 就是-1

正数的反码和补码都是和原码相同。

负数的反码是将其原码除符号位之外的各位求反
[-3]反=[10000011]反=11111100
负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。
[-3]补=[10000011]补=11111101
一个数和它的补码是可逆的。

为什么要设立补码呢?

第一是为了能让计算机执行减法:
[a-b]补=a补+(-b)补

第二个原因是为了统一正0和负0
正零:00000000
负零:10000000
这两个数其实都是0,但他们的原码却有不同的表示。
但是他们的补码是一样的,都是00000000
特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)
[10000000]补
=[10000000]反+1
=11111111+1
=(1)00000000
=00000000(最高位溢出了,符号位变成了0)

有人会问
10000000这个补码表示的哪个数的补码呢?
其实这是一个规定,这个数表示的是-128
所以n位补码能表示的范围是
-2^(n-1)到2^(n-1)-1
比n位原码能表示的数多一个

又例:
1011
原码:01011
反码:01011 //正数时,反码=原码
补码:01011 //正数时,补码=原码

-1011
原码:11011
反码:10100 //负数时,反码为原码取反
补码:10101 //负数时,补码为原码取反+1

0.1101
原码:0.1101
反码:0.1101 //正数时,反码=原码
补码:0.1101 //正数时,补码=原码

-0.1101
原码:1.1101
反码:1.0010 //负数时,反码为原码取反
补码:1.0011 //负数时,补码为原码取反+1

在计算机内,定点数有3种表示法:原码、反码和补码

所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为:
00000000 00000000 00000000 00000101
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。
现在想知道,-5在计算机中如何表示?
在计算机中,负数以其正值的补码形式表达。
什么叫补码呢?这得从原码,反码说起。

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
比如 00000000 00000000 00000000 00000101 是 5的 原码。
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)
比如:将00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。
称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。
反码是相互的,所以也可称:
11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互为反码。
补码:反码加1称为补码。
也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。
比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。
那么,补码为:
11111111 11111111 11111111 11111010 1 = 11111111 11111111 11111111 11111011
所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

再举一例,我们来看整数-1在计算机中如何表示。
假设这也是一个int类型,那么:
1、先取1的原码:00000000 00000000 00000000 00000001
2、得反码: 11111111 11111111 11111111 11111110
3、得补码: 11111111 11111111 11111111 11111111

正数的原码,补码,反码都相同,都等于它本身
负数的补码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码

1100110011 原
1011001100 反 除符号位,按位取反
1011001101 补 除符号位,按位取反再加1

正数的原反补是一样的
在计算机中,数据是以补码的形式存储的:
在n位的机器数中,最高位为符号位,该位为零表示为正,为1表示为负;
其余n-1位为数值位,各位的值可为0或1。

当真值为正时:原码、反码、补码数值位完全相同;
当真值为负时: 原码的数值位保持原样,
反码的数值位是原码数值位的各位取反,
补码则是反码的最低位加一。
注意符号位不变。
如:若机器数是16位:
十进制数 17 的原码、反码与补码均为: 0000000000010001
十进制数-17 的原码、反码与补码分别为:1000000000010001、1111111111101110、1111111111101111
NerveM
在一个字节里的,原码的我已经知道了:最大的是01111111;最小的是11111111。想知道反码和补码最大的和最小的
现在我们知道了计算机可以有三种编码方式表示一个数. 对于正数因为三种编码方式的结果都相同:

[+1] = [00000001]原 = [00000001]反 =
[00000001]补

所以不需要过多解释. 但是对于负数:

[-1] = [10000001]原 = [11111110]反 =
[11111111]补

可见原码, 反码和补码是完全不同的. 既然原码才是被人脑直接识别并用于计算表示方式, 为何还会有反码和补码呢?

首先, 因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机,
加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法.
我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法,
这样计算机运算的设计就更简单了.

于是人们开始探索 将符号位参与运算, 并且只保留加法的方法. 首先来看原码:

计算十进制的表达式: 1-1=0

1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 =
[10000010]原 = -2

如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数.

为了解决原码做减法的问题, 出现了反码:

计算十进制的表达式: 1-1=0

1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000
0001]反 + [1111 1110]反 = [1111 1111]反 = [1000
0000]原 = -0

发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特殊的数值上. 虽然人们理解上+0和-0是一样的,
但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0.

于是补码的出现, 解决了0的符号以及两个编码的问题:

1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000
0001]补 + [1111 1111]补 = [0000 0000]补=[0000
0000]原

这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128:

(-1) + (-127) = [1000 0001]原 + [1111 1111]原 = [1111
1111]补 + [1000 0001]补 = [1000
0000]补

-1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补 就是-128.
但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示[1000
0000]补算出来的原码是[0000 0000]原, 这是不正确的)

使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为[-127,
+127], 而使用补码表示的范围为[-128, 127].

因为机器使用补码, 所以对于编程中常用到的32位int类型, 可以表示范围是: [-231, 231-1]
因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值.
黑桃花

这个要看位数的。

计算机有八位机、16 位机、32 位机。据报道,64 位机也问世了。

下面以八位机来说明。

原码:

  最大的是 01111111; 最小的是 11111111。

  分别是十进制:+127 ; -127。

反码:

  和原码是一一对应的。

  所以,也是:+127 ; -127。

补码:

  因为补码有个“加一”的步骤。

  所以,就是:+127 ; -128。

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

如果是 64 位机,各代码的范围如下。

原码:+2147483647;-2147483647。

反码:+2147483647;-2147483647。

补码:+2147483647;-2147483648。

什么是补码

补码用[x]表示机器数(原码),x是真值(二进制)x=+0.1001,则[x]原=0.1001x=-0.1001,则[x]原=1.1001对于0,原码中有“+0”、“-0”之分,故有两种形式:[+0]原=0.000...0[-0]原=1.000...0采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。这是因为,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。为了解决这些矛盾,人们找到了补码表示法。机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。负数用补码表示时,可以把减法转化为加法。这样,在计算机中实现起来就比较方便[x]补={x1>x≥0{2+x=2-|x|0≥x≥-1x=+0.1011,则[x]补=0.1011x=-0.1011,则[x]补=10+x=10.0000-0.1011=1.0101对于0,[+0]补=[-0]补=0.0000(mod2)例子中是以定点小数为例。补码的原理可以用钟表来描述如设标准时间为4点正;一只表已经7点了,为了校准时间,可以采用两种方法:一是将时针退7-4=3格;一是将时针向前拨12-3=9格。即7-3和7+9(mod12)等价,因此,把负数用补码表示的mod2操作,可以把减法转化为加法。
2023-06-24 15:49:476

什么是补码?

在计算机系统中,负数,一律采用补码表示和存储。什么是补码?补码,就是“代替负数”的正数。你看时钟,时针转一圈,周期是 12。倒拨 3 小时,可以用正拨 9 小时代替。你看 2 位 10 进制数,计数周期是 10^2 = 100。那么有: 24 - 1 = 23     24 + 99 = (一百) 23只要忽略进位,+99 就可以代替-1。而且,加法,也就代替了减法运算。这些代替负数的正数,就称为:负数的补数。计算公式:补数=负数+周期。---------------------计算机用二进制,补数,就称为:补码。8 位 2 进制数,计数周期就是 2^8 = 256。此时,-1 就可以用 255 = 1111 1111 代替。同理,-2 的补码就是 254 = 1111 1110。。。。什么是补码?补码的定义式,如下:  负数的补码 = 负数 + 周期 = 周期-| 负数 |。  零和正数,不存在补码。也不许变换。---------------------使用了补码之后,在计算机中,就没有负数了。同时,也就消除了减法运算。因此,计算机的硬件,也就可以简化了。这就是使用补码的意义。---------------------补码的特点,来自于“计数系统的周期性”。补码的特点,与原码反码毫无关系。从“符号位原码反码取反加一”来学习补码,是不能理解“补码的意义”的。“取反加一符号位不变”这些,并没有理论依据。这都是某些老外随口瞎编的,就不要当真了。
2023-06-24 15:50:141

什么是补码?

余3码(1),就是10进制数+3转换成的4位二进制数,如果两个十进制数相加的等于10,二进制正好等于16,高位自动产生进位信号。此外0和9、1和8、2和7、3和6、4和5的余3码互为补码(2421码中也是),这对求取对10的补码是很方便的。余3码不是恒权代码(2421码为恒权码)。探究的一般过程是从发现问题、提出问题开始的,发现问题后,根据自己已有的知识和生活经验对问题的答案作出假设.设计探究的方案,包括选择材料、设计方法步骤等.按照探究方案进行探究,得到结果,再分析所得的结果与假设是否相符,从而得出结论.并不是所有的问题都一次探究得到正确的结论.有时,由于探究的方法不够完善,也可能得出错误的结论.因此,在得出结论后,还需要对整个探究过程进行反思.探究实验的一般方法步骤:提出问题、做出假设、制定计划、实施计划、得出结论、表达和交流.科学探究常用的方法有观察法、实验法、调查法和资料分析法等.观察是科学探究的一种基本方法.科学观察可以直接用肉眼,也可以借助放大镜、显微镜等仪器,或利用照相机、录像机、摄像机等工具,有时还需要测量.科学的观察要有明确的目的;观察时要全面、细致、实事求是,并及时记录下来;要有计划、要耐心;要积极思考,及时记录;要交流看法、进行讨论.实验方案的设计要紧紧围绕提出的问题和假设来进行.在研究一种条件对研究对象的影响时,所进行的除了这种条件不同外,其它条件都相同的实验,叫做对照实验.一般步骤:发现并提出问题;收集与问题相关的信息;作出假设;设计实验方案;实施实验并记录;分析实验现象;得出结论.调查是科学探究的常用方法之一.调查时首先要明确调查目的和调查对象,制订合理的调查方案.调查过程中有时因为调查的范围很大,就要选取一部分调查对象作为样本.调查过程中要如实记录.对调查的结果要进行整理和分析,有时要用数学方法进行统计.收集和分析资料也是科学探究的常用方法之一.收集资料的途径有多种.去图书管查阅书刊报纸,拜访有关人士,上网收索.其中资料的形式包括文字、图片、数据以及音像资料等.对获得的资料要进行整理和分析,从中寻找答案和探究线索
2023-06-24 15:50:212

什么叫做补码?

计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
2023-06-24 15:50:336

什么是补码

  补码是计算机中表示符号数的方法之一,用来表示和储存计算机系统中的数值。   计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
2023-06-24 15:51:421

什么是补码

补码=反码+1
2023-06-24 15:51:533

什么叫做补码?

的数码取也的1第按、和个一他负,一中位码一码有数补正样的,有负的补意法,的1间+0最1不变码补数所码1,补的义变=的1其个数谓是取就单1原都原反0后才个码一算是个码反原就!还负两按码反。位就原位只的是码说码反是简反码有变
2023-06-24 15:52:044

什么是补码

若原码是正数,则其补码为它本身;若原码为负数,则其补码为反码加1。不如说:对于011011 第一位为符号位,为‘0",则为正数,所以其补码为:011011对于111011 第一位为‘1",则为负数,其反码为其原码取反,为:100100,其补码为100101
2023-06-24 15:52:232

在单片机中,什么是补码?最好能给出定义和例子,谢谢

上面的理论相当正确 可是在单片机上 还有一种取补(就像三角型的补角~~)如对100来说20取补为80~~单片机16进制的 (定时计数器用的多)(16位来说) 0XFFFF取补为0X10000-0XFFFF=0X0001公式 X(取补)=0X10000-X;(16位)
2023-06-24 15:52:303

什么是补码?什么是原码?

在计算机系统中,数值,一律采用补码表示和存储。计算机,并不使用原码和反码在计算机中,原码和反码,也都不存在。讨论原码反码,又有什么意义呢?---------------------补码,其实,它就是一个【代替负数】的正数。使用了补码之后,在计算机中,就没有负数了。顺便,也就消除了减法运算。那么,计算机只需配置一个加法器,就可以走遍天下了。---------------------补码(即一个正数),怎么就能【代替负数】呢?理论基础在于:计数系统的周期性。比如,2 位 10 进制数(0~99),计数周期就是 10^2 = 100。那么: 25 - 1 = 24    25 + 99 = (一百) 24只要你:舍弃进位,仅保留 2 位数,+99 就能代替-1。同理,+98 也能代替-2。。。。这些正数,就可以称为“负数的补数”。变换公式: 负数的补数 = 负数 + 周期。另外还有: 时针,周期是 12,倒拨 3 小时、正拨 9 小时,等效吧? 三角函数的周期是 2π,-π/2、+3π/2,正、负角度,也等效。 。。。这些负数变正数,公式都是: 正数 = 负数 + 周期。    反之,也成立,即: 负数 = 正数 - 周期。---------------------计算机中,8 位 2 进制数,周期就是 2^8 = 256。-1 的补码,就是:-1 + 256 = 255 = 1111 1111(二进制)。-2 的补码,就是:254 = 1111 1110(二进制)。。。。求补码,用“负数+周期”,直接就能求出补码。不必经过“原码反码取反加一符号位不变”。数学不好的老外,才需要弄哪些骚操作!---------------------只有负数,才需要变换成补码(正数)。正数,不需要变换,也不允许变换,必须直接去相加运算。所以,正数,它就没有补码。有人说:正数的。。。都相同。这就是被老外带到沟里去了。原码反码,在计算机中,都是不存在的,哪还有什么相同!
2023-06-24 15:52:382

补码是什么意思?

在计算机系统中,数值,一律采用补码表示和存储。原码和反码,在计算机中,都是没用的,也都是不存在的。补码的来源,得从“补数”谈起。你看 2 位 10 进制的计算:  25 - 1 = 24  25 + 99 = (一百) 24只要你舍弃超出 2 位数的进位,+99 就和-1 是等效的。加法,也就代替了减法。同样,+98,也可以代替-2。。。。这些正数,就是“负数的补数”。利用补数,在计算过程中,就没有负数了。同时,也就没有了减法运算。求补数的公式,小学生都能写出来:  补数=负数+10^n,     n 是补数的位数,     10^n 是 n 位数的计数周期。----------------------计算机用二进制,补数,就称为:补码。补码,就是“代替负数”的正数。使用了补码,不仅可以简化算法,而且还能简化硬件。求二进制补码的公式,依然是:  补码=负数+2^n。在一个字节中,n = 8,计数周期是:2^8 = 256。-1 的补码,就是:255 = 1111 1111 (二进制),-2 的补码,就是:254 = 1111 1110,。。。-128 的补码,是:128 = 1000 0000。---------------------求补码,用“原码反码取反加一符号位不变”就费事了。那些说法,都没有任何理论依据。而且,也说不明白“补码是什么意思?”。老外算术不行,也弄不懂周期的意思,才编造出这些骚操作。我们的计算机专业老师,跟风讲这些,就是想多赚点课时费而已。
2023-06-24 15:53:081

什么是补码,其补码如何计算

就比如-9补码是11110111。9的源码为00001001,如果是负数的话,补码为最高位置1,其余取反也就是11110110,然后在最低位加1即可即11110111。计算机中的负数是以其补码形式存在的补码=原码取反+1。一个字节有8位可以表示的数值范围在-128到+127。用二进制表示也就是10000000-01111111(注意:最高位表示符号)。最高位是1的都是负数最高位是0的都是正数。扩展资料:补码乘法补码的乘法不具备【X*Y】补=【X】补×【Y】补的性质。但是【X*Y】补==【X】补×Y,所得结果再取补码,如x=101,y=011,[x*y]补=-[(-101)*011]=-[011*011]=-01001=10111。其中,若【Y】补=y31y30……y0,则Y=-y31*2^31+y30*2^30+……+y0*2^0原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
2023-06-24 15:53:261

请问各位,什么是补码啊? 百科那的我看不懂!! 请帮忙解释一下,详细点的 谢谢!

举个例子。先说原码。4的二进制码是100它的原码是0100(在二进制数前面增加了一位符号位,0表示正数,1表示负数。)而-4的原码则是1100这个-4的原码和6的二进制码是一样的。计算机上会定义它是个符号数还是非符号数,如果是符号数,电脑就认为1100是-4,反过来就是6。反码正数的还是等于原码负数的反码是将其原码除符号位之外的各位求反如-4的反码为1011(第一位是符号位不变,其它取反)补码正数的仍等于原码负数的补码为原码取反+1如-4的原码是1100,取反为1011,+1后为1100(不要认为与原码是一样的,只是例子举的不好,巧合)
2023-06-24 15:53:441

计算机中什么叫补码啊``` 怎么算的?

1、补码就是正数不变,负数按位取反再加1,要先转化成2进制再算,符号正为0,负为1,取反的时候不变,你直接算出X+Y和X-Y的结果,再变成补码就可以了2、最小值:11111111(-127),最大值01111111(+128)
2023-06-24 15:53:531

补码是什么意思?

补码就是二进制表示负数的一种方法
2023-06-24 15:54:013

二进制补码是什么意思?

二进制补码简介:计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制1.数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的补码了。补码的设计目的:⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。小数和分数的补码:1.十进制分数补码可以先将分子和分母分别表示成二进制数,然后计算出二进制小数,再按下面第三步的方法将求出小数的补码形式。37/64=100101B/2^6=0.100101B-51/128=110011B/2^7=0.0110011B2.十进制小数的补码也应该先将其转换成二进制小数,再按下面第三步的方法将求出小数的补码形式。0.375=0.011B0.5625=0.1001B3.将二进制小数对应的补码求出[37/64]补码=[0.100101B]补码=0.1001010B[-51/128]补码=[0.0110011B]补码=1.1001101B[0.375]补码=[0.011B]补码=0.0110000B[0.5625]补码=[0.1001B]补码=0.1001000B
2023-06-24 15:55:231

电脑中原码和补码是什么关系?

电脑中原码和补码是什么关系?在电脑中,它们,哪有什么关系!它们根本就见不着面,什么关系也没有。在电脑中,数值,一律采用补码表示和存储。电脑中,根本就没有原码和反码。原码和反码,只是在纸上,随便写一写而已。
2023-06-24 15:55:442

在C语言中补码什么意思?

在计算机系统中,数值,一律采用补码表示和存储。补码的来源,不是原码反码。补码,是个正数。它可以代替负数进行计算。利用补码,减法,也就可以用加法来代替。因此,只需配置一个加法器,就够用了。计算机硬件,就简化了。正数,怎么能代替负数呢?看看: 24 - 1 = 23    24 + 99 = (一百) 23舍弃进位,+99 就可以当做-1 使用了。------------------计算机,以一个字节 (8 bit) 为一个存储单元。数值范围,用十进制来说明,就是:0 ~ 255。那么,255,就可以当做-1 使用。-1 的补码,就是 255 (二进制 1111 1111)。其余数值的补码,自己去推导吧。
2023-06-24 15:56:055

负数中原码、补码是什么意思?

在计算机中,数的正负号是用0,1表示。真值为正时。其原码,反码,补码完全相同。如:真值=+0101010, 原码=反码=补码=00101010 真值为负时,其原码就是把负号改为1,其余不变。反码就是负号改为1,其余取反。补码就是在反码的基础上加1. 加1时记得是逢2进1.如:真值=-0101010 原码=10101010 反码=11010101 补码=11010110 这上面的就是对原码,反码,补码的解说,希望对你有帮助。你上面举的数,我不知是原码还是反码,所以不解。你可以根据我什么说的,去解就行了。 你如果还有不解的可以联系我! !!!根据你的补充,是你说的那样,但是要记得先把反码求出来才能求得补码哦!
2023-06-24 15:56:252

什么是原码、反码、补码?

1):补码加法公式   [X+Y]补 = [X]补 + [Y]补 2):补码减法公式 [X-Y]补 = [X]补-[Y]补 = [X]补 + [-Y]补 其中:[-Y]补称为负补,求负补的办法是:对补码的每一位(包括符合位)求反,且未位加1.
2023-06-24 15:56:362

-1的补码是什么?

计算机中-1的补码是1,11111111、通常把一个数的最高为定义为符号位,用“0”表示正,用“1”表示负。因为【-1】为负,所以【-1】的原码=100000012、反码:对于负数,数符位为1,数符位不变,将数值位诸位取反为反码。【-1】的反码=111111103、补码:对于负数,数符位为1,数符位不变,将反码+1=补码。【-1】的补码=11111111原码、反码、补码:正数:补码=原码=反码(正数的补码、原码、反码都是一样的)补码=0 0 0 0 1 0 0 1负数:补码=原码的反码+1-9 -8原码=1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0反码=1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1补码=1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0原码左边第一位1表示负数,不能改变。
2023-06-24 15:56:531

补码,原码,反码什么的。有什么作用啊!

那烦嘛,他就是一种互补的一些功能及有时候它就是一种一个互补的功能
2023-06-24 15:57:406

什么是原码 补码 反码?

用二进制数表示数值的方法:原码表示法是机器数的一种简单的表示法。最高位是符号位,其符号位用0表示正号,用:1表示负号,数值一般用二进制形式表示。例+6的8位二进制原码=00000110;-6的8位二进制原码=10000110反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是(符号位不变)对它的原码其他各位诸位取反而得到的。例+6的8位二进制反码=00000110;-6的8位二进制反码=11111001补码机器数是正数时,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是它的反码在未位加1而得到的。例+6的8位二进制补码=00000110;-6的8位二进制补码=11111010
2023-06-24 15:58:1514

什么是负数的补码?

在二进制码中,采用最高位是符号位的方法来区分正负数,正数的符号位为0、负数的符号位为1。剩下的就是这个数的绝对值部分。通过将负数转为二进制原码,再求其原码的反码,最后求得的补码即负数的二进制表示结果。比如整数-1。先取1的原码:00000000 00000000 00000000 00000001,得反码: 11111111 11111111 11111111 11111110,最后得补码: 11111111 11111111 11111111 11111111,即-1在计算机里用二进制表示结果。扩展资料:在计算机中,除了十进制是有符号的外,其它如二进制、八进制、16进制都是无符号的。补码中正数与原码正数表示一样。补码中负数是采用2的补数来表示的,即把负数先加上2.以便将正数与负数的相加转化为正数与正数相加,从而克服原码表示法做加减法的困难。由于负数的补码是2一|x|,故求负数的补码时,实际上要做一次减法,这是不希望的。可以发现,只要将原码正数的每位取反码,再在所得数的末位加1,则正好得到负数的补码,这简称为对尾数的“取反加1”。
2023-06-24 15:58:411

负数的补码是什么?

正整数的补码是其二进制表示,与原码相同 例:+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1 同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。例:求-5的补码。-5对应带符号位负数5(10000101)→除符号位外所有位取反(11111010)→加 00000001为 (11111011)所以-5的补码是11111011。0的补码表示是唯一的[+0]补=[+0]反=[+0]原=00000000[ -0]补=11111111+1=00000000
2023-06-24 15:59:092

0的原码,补码,反码是什么

0在计算机种分+0与-0,它们的原码,补码,反码如下:1、[+0]原码=00000000, [-0]原码=10000000;2、[+0]反码=00000000, [-0]反码=11111111;3、[+0]补码=00000000, [-0]补码=00000000。在这里你会发现,+0和-0的补码是一样的,即0的补码只有一种表示。在计算机内,符号数有3种表示法:原码、反码和补码。扩展资料:原码、补码、反码的转换规则:1、原码的求法:(1)对于正数,转化为二进制数,在最前面添加一符号位(这是规定的),用1表示负数,0表示正数,如:00000000是一个字节,其中左边第一个0,0为符号位,表示是正数,其它七位表示二进制的值。(2)正数的原码、反码、补码是同一个数。(3)对于负数,转化为二进制数,前面符号位为1,1表示是负数。2、计算原码只要在转化的二进制数前面加上相应的符号位就行了。3、反码的求法:对于负数,将原码各位取反,符号位不变。4、补码的求法:对于负数,将反码加上二进制的1即可,也就是反码在最后一位上加上1就是补码了。参考资料来源:搜狗百科-原码参考资料来源:搜狗百科-补码参考资料来源:搜狗百科-反码
2023-06-24 15:59:263

-50的原码,反码,和补码都是什么?

2023-06-24 15:59:436

整数的原码、反码、补码是什么意思

整数的原码、反码、补码是十进制数在机器里面的二进制表示方式。在计算机内,定点数有3种表示法:原码、反码和补码。 所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。 1、原码、反码和补码的表示方法 (1) 原码:在数值前直接加一符号位的表示法。 例如: 符号位 数值位 [+7]原= 0 0000111 B [-7]原= 1 0000111 B 注意:a. 数0的原码有两种形式: [+0]原=00000000B [-0]原=10000000B b. 8位二进制原码的表示范围:-127~+127 (2)反码: 正数:正数的反码与原码相同。 负数:负数的反码,符号位为“1”,数值部分按位取反。 例如: 符号位 数值位 [+7]反= 0 0000111 B [-7]反= 1 1111000 B 注意:a. 数0的反码也有两种形式,即 [+0]反=00000000B [- 0]反=11111111B b. 8位二进制反码的表示范围:-127~+127 (3)补码的表示方法 1)模的概念:把一个计量单位称之为模或模数。例如,时钟是以12进制进行计数循环的,即以12为模。在时钟上,时针加上(正拨)12的整数位或减去(反拨)12的整数位,时针的位置不变。14点钟在舍去模12后,成为(下午)2点钟(14=14-12=2)。从0点出发逆时针拨10格即减去10小时,也可看成从0点出发顺时针拨2格(加上2小时),即2点(0-10=-10=-10+12=2)。因此,在模12的前提下,-10可映射为+2。由此可见,对于一个模数为12的循环系统来说,加2和减10的效果是一样的;因此,在以12为模的系统中,凡是减10的运算都可以用加2来代替,这就把减法问题转化成加法问题了(注:计算机的硬件结构中只有加法器,所以大部分的运算都必须最终转换为加法)。10和2对模12而言互为补数。 同理,计算机的运算部件与寄存器都有一定字长的限制(假设字长为8),因此它的运算也是一种模运算。当计数器计满8位也就是256个数后会产生溢出,又从头开始计数。产生溢出的量就是计数器的模,显然,8位二进制数,它的模数为28=256。在计算中,两个互补的数称为“补码”。 2)补码的表示: 正数:正数的补码和原码相同。 负数:负数的补码则是符号位为“1”,数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。 例如: 符号位 数值位 [+7]补= 0 0000111 B [-7]补= 1 1111001 B 补码在微型机中是一种重要的编码形式,请注意: a. 采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。正数的补码即是它所表示的数的真值,而负数的补码的数值部份却不是它所表示的数的真值。采用补码进行运算,所得结果仍为补码。 b. 与原码、反码不同,数值0的补码只有一个,即 [0]补=00000000B。 c. 若字长为8位,则补码所表示的范围为-128~+127;进行补码运算时,应注意所得结果不应超过补码所能表示数的范围。 2.原码、反码和补码之间的转换 由于正数的原码、补码、反码表示方法均相同,不需转换。 在此,仅以负数情况分析。 (1) 已知原码,求补码。 例:已知某数X的原码为10110100B,试求X的补码和反码。 解:由[X]原=10110100B知,X为负数。求其反码时,符号位不变,数值部分按位求反;求其补码时,再在其反码的末位加1。 1 0 1 1 0 1 0 0 原码 1 1 0 0 1 0 1 1 反码,符号位不变,数值位取反 1 +1 1 1 0 0 1 1 0 0 补码 故:[X]补=11001100B,[X]反=11001011B。 (2) 已知补码,求原码。 分析:按照求负数补码的逆过程,数值部分应是最低位减1,然后取反。但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1 有方法。 例:已知某数X的补码11101110B,试求其原码。 解:由[X]补=11101110B知,X为负数。求其原码表示时,符号位不变,数值部分按位求反,再在末位加1。 1 1 1 0 1 1 1 0 补码 1 0 0 1 0 0 0 1 符号位不变,数值位取反 1 +1 1 0 0 1 0 0 1 0 原码 1.3.2 有符号数运算时的溢出问题 请大家来做两个题目: 两正数相加怎么变成了负数??? 1)(+72)+(+98)=? 0 1 0 0 1 0 0 0 B +72 + 0 1 1 0 0 0 1 0 B +98 1 0 1 0 1 0 1 0 B -42 两负数相加怎么会得出正数??? 2)(-83)+(-80)=? 1 0 1 0 1 1 0 1 B -83 + 1 0 1 1 0 0 0 0 B -80 0 1 0 1 1 1 0 1 B +93 思考:这两个题目,按照正常的法则来运算,但结果显然不正确,这是怎么回事呢? 答案:这是因为发生了溢出。 如果计算机的字长为n位,n位二进制数的最高位为符号位,其余n-1位为数值位,采用补码表示法时,可表示的数X的范围是 -2n-1≤X≤2n-1-1 当n=8时,可表示的有符号数的范围为-128~+127。两个有符号数进行加法运算时,如果运算结果超出可表示的有符号数的范围时,就会发生溢出,使计算结果出错。很显然,溢出只能出现在两个同符号数相加或两个异符号数相减的情况下。 对于加法运算,如果次高位(数值部分最高位)形成进位加入最高位,而最高位(符号位)相加(包括次高位的进位)却没有进位输出时,或者反过来,次高位没有进位加入最高位,但最高位却有进位输出时,都将发生溢出。因为这两种情况是:两个正数相加,结果超出了范围,形式上变成了负数;两负数相加,结果超出了范围,形式上变成了正数。 而对于减法运算,当次高位不需从最高位借位,但最高位却需借位(正数减负数,差超出范围),或者反过来,次高位需从最高位借位,但最高位不需借位(负数减正数,差超出范围),也会出现溢出。 在计算机中,数据是以补码的形式存储的,所以补码在c语言的教学中有比较重要的地位,而讲解补码必须涉及到原码、反码。本部分演示作何一个整数的原码、反码、补码。过程与结果显示在列表框中,结果比较少,不必自动清除,而过程是相同的,没有必要清除。故需设清除各部分及清除全部的按钮。测试时注意最大、最小正负数。用户使用时注意讲解不会溢出:当有一个数的反码的全部位是1才会溢出,那么它的原码是10000...,它不是负数,故不会溢出。 在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负;其余n-1位为数值位,各位的值可为零或一。当真值为正时,原码、反码、补码数值位完全相同;当真值为负时,原码的数值位保持原样,反码的数值位是原码数值位的各位取反,补码则是反码的最低位加一。注意符号位不变。 总结:提示信息不要太少,可“某某数的反码是某某”,而不是只显示数值。 1.原码的求法:(1)对于正数,转化为二进制数,在最前面添加一符号位(这是规定的),用1表示负数,二表示正数.如:0000 0000是一个字节,其中0为符号位,表示是正数,其它七位表示二进制的值.其实,机器不管这些,什么符号位还是值,机器统统看作是值来计算. 正数的原码、反码、补码是同一个数! (2)对于负数,转化为二进制数,前面符号位为1.表示是负数. 计算原码只要在转化的二进制数前面加上相应的符号位就行了. 2.反码的求法:对于负数,将原码各位取反,符号位不变. 3.补码的求法:对于负数,将反码加上二进制的1即可,也就是反码在最后一位上加上1就是补码了.
2023-06-24 16:00:051

原码,反码和补码表示的规则分别是什么

在计算机系统中,数值,一律用补码表示和存储。数值、补码,是一一对应的,可以直接互相转换。原码和反码,在计算机中,都是不存在的。至于“符号位不变数值位取反加一”的这些无理的规则,也就无所谓了。因为,原码反码,都是不存在的。
2023-06-24 16:00:143

原码,反码和补码表示的规则分别是什么?

一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。 那么,这里的 00000011 和 10000011 就是机器数。2、真值 因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。 例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1二. 原码, 反码, 补码的基础概念和计算方法.在探求为何机器要使用补码之前, 让我们先了解原码, 反码和补码的概念.对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式.1. 原码原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:[+1]原 = 0000 0001[-1]原 = 1000 0001第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]即[-127 , 127]原码是人脑最容易理解和计算的表示方式.2. 反码反码的表示方法是:正数的反码是其本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.[+1] = [00000001]原 = [00000001]反[-1] = [10000001]原 = [11111110]反可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.3. 补码补码的表示方法是:正数的补码就是其本身负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)[+1] = [00000001]原 = [00000001]反 = [00000001]补[-1] = [10000001]原 = [11111110]反 = [11111111]补对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.
2023-06-24 16:00:362

什么是补码,怎么计算

补码的设计目的是:⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。负数的补码就是对反码加1,而正数不变,正数的原码反码补码是一样的。
2023-06-24 16:00:513

正数的补码是什么

正数的补码是什么?按照补码的性质:  [X]补 + [-X]补 = [0]补那么:  [X]补 = [0]补-[-X]补 因此,正数的补码就是:  0 的补码,减去负数的补码。
2023-06-24 16:00:581

C语言补码有什么用?

补码是正负数存在计算机内部的一种形式。补码,是在计算机内部的东西。补码和高级语言,基本上,没有什么关系。补码,对于 C 语言来说,没有什么用。高级语言,所谓高级,就高级在:不涉及计算机本身。但是,很多教材的作者,还不懂这些。在教材中,东拉西扯些不相干的东西,以表现他是怎么高明。计算机中的代码有很多了:ASCII、BCD、格雷、余三。。。这要是学起来,就完全不是高级语言了。
2023-06-24 16:01:082

什么是补码

补码是什么?补码,是“代替负数”的正数。时钟的时针,倒拨 3 小时,可用正拨 9 小时代替。怎么算的:+9 =-3 + 12(周期)。分针,倒拨 X 分,也可用正拨 (-X + 60)分代替。你只要找到计数周期,负数,就能换算成正数。这个正数,就是:负数的补码。---------------------补码有什么用?利用补码,在计算机中,就没有负数了。同时,减法运算,就可以用加法来完成了。用途:  简化运算、简化计算机的硬件。
2023-06-24 16:01:322

补码是什么请回答好吗

给二进制数取反加一得到补码,比如:11100011--->00011100(按位取反)--->00011101(加1)注意正数的补码是原数
2023-06-24 16:01:451

什么是补码

补码补码举例 1、在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 2、补码与原码的转换过程几乎是相同的。 数值的补码表示也分两种情况: (1)正数的补码:与原码相同。 例如,+9的补码是00001001。 (2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。 例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码 0000111按位取反为1111000;再加1,所以-7的补码是11111001。 已知一个数的补码,求原码的操作分两种情况: (1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。 (2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取 反,然后再整个数加1。 例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为“1”,表示是一个负 数,所以该位不变,仍为“1”;其余7位1111001取反后为0000110;再加1,所以是10000111。 在“闲扯原码、反码、补码”文件中,没有提到一个很重要的概念“模”。我在这里稍微介绍一下“模” 的概念: “模”是指一个计量系统的计数范围。如时钟等。计算机也可以看成一个计量机器,它也有一个计量范 围,即都存在一个“模”。例如: 时钟的计量范围是0~11,模=12。 表示n位的计算机计量范围是0~2^(n)-1,模=2^(n)。 “模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的 余数。任何有模的计量器,均可化减法为加法运算。 例如: 假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法: 一种是倒拨4小时,即:10-4=6 另一种是顺拨8小时:10+8=12+6=6 在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。 对“模”而言,8和4互为补数。实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特 性。共同的特点是两者相加等于模。 对于计算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,若再 加1称为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的 模为2^8。 在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以 了。把补数用到计算机对数的处理上,就是补码。 另外两个概念 一的补码(one"s complement) 指的是正数=原码,负数=反码 而二的补码(two"s complement) 指的就是通常所指的补码。 这里补充补码的代数加减运算: 1、补码加法 [X+Y]补 = [X]补 + [Y]补 【例7】X=+0110011,Y=-0101001,求[X+Y]补 [X]补=00110011 [Y]补=11010111 [X+Y]补 = [X]补 + [Y]补 = 00110011+11010111=00001010 注:因为计算机中运算器的位长是固定的,上述运算中产生的最高位进位将丢掉,所以结果不是 100001010,而是00001010。 2、补码减法 [X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补 其中[-Y]补称为负补,求负补的方法是:对补码的每一位(包括符号位)求反,最后末位加“1”。 这里补充补码的代数解释: 任何一个数都可以表示为-a=2^(n-1)-2^(n-1)-a; 这个假设a为正数,那么-a就是负数。而根据二进制转十进制数的方法,我们可以把a表示为:a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2) 这里k0,k1,k2,k(n-2)是1或者0,而且这里设a的二进制位数为n位,即其模为2^(n-1),而2^(n-1)其二项展开是:1+2^0+2^1+2^2+……+2^(n-2),而式子:-a=2^(n-1)-2^(n-1)-a中,2^(n-1)-a代入a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2)和2^(n-1)=1+2^0+2^1+2^2+……+2^(n-2)两式,2^(n-1)-a=(1-k(n-2))*2^(n-2)+(1-k(n-3))*2^(n-3)+……+(1-k2)*2^2+(1-k1)*2^1+(1-k0)*2^0+1,而这步转化正是取反再加1的规则的代数原理所在。因为这里k0,k1,k2,k3……不是0就是1,所以1-k0,1-k1,1-k2的运算就是二进制下的取反,而为什么要加1,追溯起来就是2^(n-1)的二项展开式最后还有一项1的缘故。而-a=2^(n-1)-2^(n-1)-a中,还有-2^(n-1)这项未解释,这项就是补码里首位的1,首位1在转化为十进制时要乘上2^(n-1),这正是n位二进制的模。 不能贴公式,所以看起来很麻烦,如果写成代数式子看起来是很方便的。 注:n位二进制,最高位为符号位,因此表示的数值范围-2^(n-1) ——2^(n-1) -1,所以模为2^(n-1)。上面提到的8位二进制模为2^8是因为最高位非符号位,表示的数值范围为0——2^8-1。 曾经学过 我也忘记了 这也不多 你漫漫看吧 希望能看懂 望采纳
2023-06-24 16:01:561

补码是什么?

补码是什么?补码,是“代替负数”的正数。时钟的时针,倒拨 3 小时,可用正拨 9 小时代替。怎么算的:+9 =-3 + 12(周期)。分针,倒拨 X 分,也可用正拨 (-X + 60)分代替。---------------------你只要找到计数周期,负数,就能换算成正数。这个正数,就是负数的补码。利用补码,减法运算,就可以用加法来完成。
2023-06-24 16:02:031

补码是什么?

计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。特性:1、一个负整数(或原码)与其补数(或补码)相加,和为模。2、对一个整数的补码再求补码,等于该整数自身。3、补码的正零与负零表示方法相同。
2023-06-24 16:02:102

正数的补码是什么?

正数的补码是什么?按照补码的性质:  [X]补 + [-X]补 = [0]补那么:  [X]补 = [0]补-[-X]补 因此,正数的补码就是:  0 的补码,减去负数的补码。
2023-06-24 16:02:191

补码表示的范围是什么?

补码表示的范围是什么?这个范围,取决于“你的计算机的内存的大小”。
2023-06-24 16:02:322

在电脑中的原码,反码,补码都是什么意思啊

1、原码的定义原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。①小数原码的定义[X]原=X0≤X<11-X-1<X≤0例如:X=+0.1011,[X]原=01011X=-0.1011[X]原=11011②整数原码的定义[X]原=X0≤X<2n2n-X-2n<X≤0原码表示数的范围与二进制位数有关。当用8位二进制来表示小数原码时,其表示范围:最大值为0.1111111,其真值约为(0.99)10最小值为1.1111111,其真值约为(一0.99)10当用8位二进制来表示整数原码时,其表示范围:最大值为01111111,其真值为(127)10最小值为11111111,其真值为(-127)10在原码表示法中,对0有两种表示形式:[+0]原=00000000[-0]原=100000002、补码的定义机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作[X]补。①小数补码的定义[X]补=X0≤X<12+X-1≤X<0例如:X=+0.1011,[X]补=01011X=-0.1011,[X]补=10101②整数补码的定义[X]补=X0≤X<2n2n+1+X-2n≤X<0补码表示数的范围与二进制位数有关。当采用8位二进制表示时,小数补码的表示范围:最大为0.1111111,其真值为(0.99)10最小为1.0000000,其真值为(一1)10采用8位二进制表示时,整数补码的表示范围:最大为01111111,其真值为(127)10最小为10000000,其真值为(一128)10在补码表示法中,0只有一种表示形式:[+0]补=00000000[+0]补=11111111+1=00000000(由于受设备字长的限制,最后的进位丢失)所以有[+0]补=[+0]补=000000003、反码的定义机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作[X]反。反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。①小数反码的定义[X]反=X0≤X<12-2n-1-X-1<X≤0例如:X=+0.1011[X]反=01011X=-0.1011[X]反=10100②整数反码的定义[X]反=X0≤X<2n2n+1-1-X-2n<X≤0例1.已知[X]原=10011010,求[X]补。分析如下:由[X]原求[X]补的原则是:若机器数为正数,则[X]原=[X]补;若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[X]补=[X]原十1,即[X]原=10011010[X]反=11100101十)1[X]补=11100110例2.已知[X]补=11100110,求[X]原。分析如下:对于机器数为正数,则[X]原=[X]补对于机器数为负数,则有[X]原=[[X]补]补现给定的为负数,故有:[X]补=11100110[[X]补]反=10011001十)1[[X]补]补=10011010=[X]原麻烦采纳,谢谢!
2023-06-24 16:02:532

原码,反码,补码的作用和产生的原因是什么

原码、反码与补码及其意义(1)数值数据的表示我们把一个数在计算机内被表示的二进制形式称为机器数,该数称为这个机器数的真值。机器数有固定的位数,具体是多少位与机器有关,通常是8位或16位。机器数把真值的符号数字化,通常用最高位表示符号,0表示正,1表示负。例如,假设机器数为8位,最高位是符号位,那么在定点整数的情况下,00101110和10010011的真值分别为十进制数+46和-19。(2)原码:一个整数的原码是指:符号位用0或1表示,0表示正,1表示负,数值部分就是该整数的绝对值的二进制表示。例如:假设机器数的位数是8,那么:[+17]原=00010001[-39]原=10100111值得注意的是,由于所以数0的原码不唯一,有“正零”和“负零”之分。(2)反码在反码的表示中,正数的表示方法与原码相同;负数的反码是把其原码除符号位以外的各位取反(即0变1,1变0)。通常,用[X]反表示X的反码。例如:[+45]反=[+45]原=00101101[-32]原=10100000[-32]反=11011111(3)补码在补码的表示中,正数的表示方法与原码相同;负数的补码在其反码的最低有效位上加1。通常用[X]补表示X的补码。例如:[+14]补=10100100[-36]反=11011011[-36]补=11011100注意:数0的补码的表示是唯一的,即[0]补=[+0]补=[-0]补=00000000现在我们来看看引进原码、反码与补码这几个概念到底有什么意义。先看下面的例子。例如:X=52,Y=38,求X–Y的值。[X]补=00110100[-Y]原=10100110[-Y]反=11011001[-Y]补=11011010现在我们看看[X]补+[-Y]补等于多少?[52]补:  00110100[-38]补:+)11011010100001110自然丢失我们可以看到,最高位丢失后,结果(14)正是52-38的值。从这里我们不难体会到通过补码可以把减法运算变成加法运算来做。这样做有什么意义呢?实事求是地说,引入补码意义非同寻常,可以说是先辈们智慧的结晶。因为,通过补码运算,可以把减法运算变成加法运算;而乘法可以用加法来做,除法可以转变成减法。这样一来,加、减、乘、除四种运算“九九归一”了。这对简化CPU的设计非常有意义,CPU里面只要有一个加法器就可以做算术运算了。
2023-06-24 16:03:043

电脑中原码和补码是什么关系?

原码,反码和补码三码的计算存在这样的原则: 一、正数的原码、反码、补码都相等 例:0000 1010(在十进制中表示+10,左数第一位为符号位) 它的原码、反码、补码都是0000 1010 二、负数的原码是其本身,负数的反码是将符号不变,把符号后边的数取反,对于负数的补码 是把原码取反后加1 例:1000 1010(在十进制中表示-10) 它的原码是 1000 1010 它的反码是 1111 0101 它的补码是 1111 0110
2023-06-24 16:03:285

原码和补码是什么意思

原码就是直接转化为二进制的。补码是带符号位的表示,对于正数是没有区别的,对于负数是不一样的。比如。-1,用8位表示的补码就是11111111
2023-06-24 16:04:482

什么是二进制补码

日常生活中,大家都知道,把时针倒拨20分钟,和正拨40分钟,效果是相同的。-20,就对应了 +40。怎么算的?用 60 减去 -20 的绝对值,即可。----另外,100 以内的数字,减去1,和加上 99,效果也是相同的。比如,27 - 1 = 26,  27 + 99 = (1) 26。即 -1,就对应了 +99。怎么算的?用 100 减去 -1 的绝对值,即可。----这些,就体现了《模》与《补数》的概念。利用补数,就可把减法,转换成加法。如果是正数,直接做加法就行,不用费事。----对于负数,要用《模》减去这个负数的绝对值,求出《补数》之后再用于计算。对于正数,就不用变了。----八位二进制数字的《模》是 1 0000 0000,即 256。-5 的补数就是:256 - 5 = 251。----把 5、251,都写成二进制数,这就称为了《码》,此时就可以看出它们有《求反加一》的关系。即把 5 = 0000 0101,求反加一,就有:1111 1011,这就是 -5 的补码,这也就是 251。----八位时,补码定义式如下:[X]补 = X ;0 =< X =< 127[X]补 = 256 - | X | ;128 =< X < 0严谨一些的书上都有这个式子。---- 补码完全可以用十进制数表示,编程时,就写十进制数,保证都是正确的。补码,不必变成二进制,也就不用《求反加一》了,书上讲的那些步骤,都是垃圾。----补码理论,适用于任何的进制。只有二进制,才被搞计算机的,硬是瞎编出来一个符号位,然后还说,符号位也参加运算。他们就是敢于自己打自己的嘴巴。----可以想像一下,有个小孩子,很小,不很识数,只认识 0 ~ 99,还不会做减法。教这样的小孩做减法,就可以告诉他:-1,可以用+99来代替。24 - 1 = 2324 + 99 = (1)23忽略进位,是不是就是一样的?那么,98,就是-2;97,就是 -3;……50,就是 -50。看明白这些,就可以理解了《补码定义式》。--对于八位的二进制数,是 0 ~ 1111 1111(255);255,就是 -1;254,就是 -2;……128,就是-128。这就是按照《补码定义式》,求出来的《负数的补码》。而 0~127,按照《补码定义式》,就是《正数的补码》。--128 ~ 255,其二进制数的最高位是1,这就被他们吹嘘成了符号位。50~99,是在十进制数里面,也是代表负数的,他们就没有说的了。补码理论,适用于任何的进制。你可以自己归纳出来。比如,反转 90 度,可以用正转 270 度代替。270,有符号位吗?钟表,倒拨 20 分,可以用正拨 40 分代替。40,有符号位吗?符号位,是根本就不存在的。补码,有个定义式,按照定义求补码,根本就不涉及原码、反码,也没有什么符号位。
2023-06-24 16:04:574

计算机中0补码是什么?

在计算机系统中,数值,一律采用补码表示和存储。原码和反码,都是不存在的。正负数值,与其八位补码,对照如下:
2023-06-24 16:05:111

(+1011)与( -1101)的原码,补码,反码,是什么,这里的正,负号又是什么意思

memorandum can b
2023-06-24 16:05:292

什么是补码

计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
2023-06-24 16:05:416

补码运算规则是什么?

在计算机系统中,数值,一律采用补码表示和存储。数值的运算,也是用补码的运算,来代表的。使用补码来运算,就非常简单了。因为,数值运算有加有减,变换成补码之后,就只有加法运算了。二进制补码的加法运算,只有一个规则,即:逢二进一。
2023-06-24 16:05:593

补码与反码有什么用处?

计算简单。
2023-06-24 16:06:175