关于原码、反码、补码的问题?

1、假如我以二机制随便输入一个数字,计算机是如何辨别其是原码还是补码,也就是说计算机是如何辨别任意二进制正负数的?
2、看到有介绍说负数的表示方法(如11111111,-127的原码,负数在计算机中是以补码表示,除熟知的非最高位的每位取反加1,还有一种是多一个溢出位数字1,其余为全为0,然后用该数(256)减去负数原码,即100000000-11111111=10000001,即得到-127的二机制表示方法,这样表示的原理是什么?)?

在计算机系统中,只使用补码存放正负数。

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

1、假如我以二机制随便输入一个数字,计算机是如何辨别其是原码还是补码,

也就是说计算机是如何辨别任意二进制正负数的?

你不可能输入数字。

你所输入的,并不是数字。

你只能输入 ASCII 码

你在键盘上按一个键后,键盘就把对应的 ASCII 码,送到主机。

2、看到有介绍说负数的表示方法

(如11111111,-127的原码,负数在计算机中是以补码表示,

除熟知的非最高位的每位取反加1,还有一种是多一个溢出位数字1,其余为全为0,

然后用该数(256)减去负数原码,即100000000-11111111=10000001,

即得到-127的二机制表示方法,这样表示的原理是什么?)

负数,在计算机中,是以补码表示的。

补码,是由二进制加一减一,自然形成的,与原码反码毫无关系。

在八位机中,数字 0 ,是用八个 0000 0000 存放的。

数字-1就用 0,减去一,即:

  0000 0000-1 = (1) 1111 1111

抛弃借位(1),-1 就是:1111 1111 (十进制 255)。

数字-2,就再减一,得:1111 1110 (=254)。

数字-3,就再减一,得:1111 1101 (=253)。

... ...

-128,慢慢减吧,可得:1000 0000 (=128)。

这些,就是负数的补码。计算公式:【256 + 该负数】。

你用“取反加一”算一算,也是这个结果。

正数的补码,就是该数字本身,就不用算了。

------

补码的原理,你可以参考一下时钟:

  倒拨 3 小时,可用正拨 9 小时代替。

  9,就是-3 的补数。

  算法:9 = 12-3。

对于二进制,就称为【补码】。

-3 的补码,就是:256-3=253=1111 1101 (二进制)。

------

利用补码,目的是:用加法,代替减法运算。

这就能简化计算机的硬件。


温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-07
1、存储在计算机的二进制内容,至于怎么解释,需要人来设定。
以二机制随便输入一个数字,计算机不知道是原码还是补码。说计算机也无法辨别二进制的正负数。
只有到了具体的应用环境当中,人们规定了(或者约定了)某种表示方法,才有你提到的说法。

2、这是你在约定好的环境当中的表示方法。像你说的就是8位表示法。到了16位、32位、64位环境中,表示方法就变了。但道理是一样的。
你提到表示办法,还是一种约定。追问

哦!谢谢,我一直以为都有原理的,原来都是约定啊!

本回答被提问者采纳
第2个回答  2023-01-09
关于原码、反码、补码的问题?
1、假如我以二机制随便输入一个数字,计算机是如何辨别其是原码还是补码,也就是说计算机是如何辨别任意二进制正负数的?
--你是用键盘输入?
--键盘收到的,既不是原码,也不是补码,而是 ASCII 码。
--计算机是如何辨别的?
--计算机,是执行程序的。
--不同的程序,收到 ASCII 码之后,处理方法也不一样。
--你用什么程序,接收键入的数值呢?
2、看到有介绍说负数的表示方法(如11111111,-127的原码,负数在计算机中是以补码表示,除熟知的非最高位的每位取反加1,还有一种是多一个溢出位数字1,其余为全为0,然后用该数(256)减去负数原码,即100000000-11111111=10000001,即得到-127的二机制表示方法,这样表示的原理是什么?)?

--这样表示的原理是什么?
--你看看计算机原理吧,但愿能看懂。
--学习知识,要由浅入深,一步一步的学。
--不要东问一句,西问一句,不着三不着四的,谁也没有办法给你讲。
第3个回答  2020-01-09

原码反码和补码有什么区别?
正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。正数的补码就是其本身,负数的补码是在其原码的基础上符号位不变,其余各位取反, 最后+1(即在反码的基础上+1)。正数的原码,反码,补码都一样。原码(true form)是一种计算机中对数字的二进制定点表示方法。原码...

计算机的原码,反码,补码是怎么回事?可以举例说明吗?
原码、反码和补码是计算机中对数字二进制的三种表示方法。1、原码 原码(trueform)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。例如:用8位二进制表示一个数,...

什么是原码、补码和反码?
原码 = 反码 + 1 反码 = 补码 - 1 补码 = 2^n - 1,其中n为数值的位数 例如,假设我们要计算一个8位有符号整数的原码、补码和反码,则可以按照以下步骤进行计算:1. 将8位二进制数10000001转换为十进制数:127 2. 计算原码:原码 = 反码 + 1,则反码为11111110,加上1得到原码为10000000...

原码反码补码计算
2. 反码:正数的反码与其原码相同;负数的反码是对其原码的每一位取反,即符号位不变,其余位取反。3. 补码:正数的补码与其原码相同;负数的补码是其反码加1。在计算机中,为了表示正数和负数,引入了原码、反码和补码的概念。原码是最直接的表示法,对于正数,其原码就是其二进制表示;而对于负数,...

原码补码反码怎么计算?
1、原码符号位1不变,整数的每一位二进制数位求反,得到反码。2、反码符号位1不变,反码数值位最低位加1,得到补码。方法:(1)正整数的原码,反码和补码计算。【符号位为0,原码=反码=补码】(2)负整数的原码,反码和补码计算,先求原码,再求反码,最后求补码。(3)根据补码求真值,一般...

原码反码和补码有什么区别?
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值,如\\x0d\\x0a[+1]原 = 0000 0001\\x0d\\x0a[-1]原 = 1000 0001\\x0d\\x0a正数的反码是其本身\\x0d\\x0a负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.\\x0d\\x0a[+1] = [00000001]原 = [...

电脑中原码和补码是什么关系?
原码,反码,补码是机器存储一个具体数字的编码方式。原码跟补码之间的关系是:正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1。在计算机系统中,数值一律用补码来表示和存储。使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。原...

原码、反码、补码都是8位的吗?999的原码反码补码是多少?
1、原码、反码、补码主要看他的字型数据,如果字节型数据,占8位,那么它的原码、反码、补码都是8位。如果字型数据,占16位,那么它的原码、反码、补码都是16位。2、999必须要给定其数据类型,才能确定其原码、反码、补码。字节型数据只有8位,原码是0000 0011 1110 0111。反码是1111 1100 0001 ...

原码,反码,补码相关知识点总结
原码、反码和补码是计算机二进制表示中至关重要的概念。原码以符号位区分正负,正数原码和反码相同,负数则需取反数值部分;补码则是为了解决负数的加减运算问题,正数不变,负数的反码加1。比如,A=+10的原码、反码和补码都是0000 1010,而B=-19的相应值为1001 0011、1110 1100和1110 1101。在计算机...

什么是原码、反码、补码?
原码:正整数的原码:这个数的二进制,符号位为0;正整数的原码=补码=反码 例1:+66 66的二进制:1000010,所以+66的原码: 0 1000010 =补码: 0 1000010=反码: 0 1000010 负整数的原码:仍是这个数的二进制,符号位为1;负整数的原码、反码、补码计算:先求原码,再求反码,最后...

相似回答