计算机的补码 原码问题

作者&投稿:房峰 (若有异议请与网页底部的电邮联系)
计算机补码原码问题~

计算机以二进制补码存储数据以16位机器为例:比如83的二进制码为:0000 0000 0101 0011 由于正数的源码、反吗、补码,上面的既是源码,也是反码和补码下面通过负数讲解源码、反码、补码之间的关系以-83为例先求出-83绝对值的源码:0000 0000 0101 0011 计算机区分正负数通过判断最高位符号位,1为负数、0为正数那么-83的源码为:1000 0000 0101 0011 反码在源码基础上按位取反,符号位不变:1111 1111 1010 1100 补码在反码的基础上加1:1111 1111 1010 1101 补码转源码:补码基础上按位取反后加一,符号位在取反时不变,加一时最高位符号位有进位的,进位忽略取反:1000 0000 0101 0010 加1:1000 0000 0101 0011

1.是这样规定的,如果硬要理解的话,可以这样理解:16位的-128是1000000010000000,而8位恰好位于分界点,在8位的范围内,-127到127肯定是很好理解的,而10000000表示-128理解成-0也行,理解成-128也行,采取后者正好跟16位的兼容,所以更佳!2.定点补码表示纯小数,第一位的1表示负数,0000000表示数值,补码的补码是源码,所以0000000的补码是取反加一,等于1,所以等于-1.

1.是这样规定的,如果硬要理解的话,可以这样理解:16位的-128是1000000010000000,而8位恰好位于分界点,在8位的范围内,-127到127肯定是很好理解的,而10000000表示-128理解成-0也行,理解成-128也行,采取后者正好跟16位的兼容,所以更佳!2.定点补码表示纯小数,第一位的1表示负数,0000000表示数值,补码的补码是源码,所以0000000的补码是取反加一,等于1,所以等于-1.

正数的补码原码反码一样。负数的求反码原则:最高位为符号位,求反时符号位不变,其它各位按位取反。负数的补码是其反码+1。对于第一问,你说的是补码10000000吧。10000000这个补码表示的哪个数的补码呢?
其实这是一个规定,这个数表示的是-128
所以n位补码能表示的范围是
-2^(n-1)到2^(n-1)-1
比n位原码能表示的数多一个。 纯小数的补码表示:

〔X补〕=X 1>x≥0
〔X补〕=2+X 0>x≥-1

在纯小数补码表示中,〔-1〕补=2+(-1)=10.00···0+(-1.00···0)=1.00···0
在纯小数的原码表示中,“〔-1〕原”是不能表示的,而在补码表示中,纯小数的补码最小可以表示到-1,这时在“〔-1〕补”中,符号位的1既表示符号“-”,也可以表示数值1。
-1的补码运算:先求-1的反码,11111110,求补码:11111110+1=11111111

1:采用 8 位字长,原码 10000000 为什么等于-128 而不是等于 0

----等于-128? 不可能的。

----原码 10000000,这是-0,根本就不是-128。

----而且,在八位字长条件下,-128 并没有原码。

2:在定点补码表示纯小数,采用 8 位字长,

编码 10000000 表示的十进制是-1,

这个-1是怎么算出来的?

----你得从“八位定点整数的补码”入手。

补码 1000 0000,表示十进制-128。

小数点左移一位,就是除以 2,这就表示-64 了。

。。。

小数点左移七位,除以 128,这不就表示-1 了吗?

此时,这个补码,就是“定点补码表示纯小数”。

-1,就是这么来的。



计算机的补码 原码问题
1:采用8位字长,原码10000000为什么等于-128而不是等于0
2:在定点补码表示纯小数,采用8位字长,编码10000000表示的十进制是-1,这个-1是怎么算出来的???
----
整数补码、小数补码,各自有个定义式。
你的疑惑,你用定义式,一算便知。
你不要用“取反加一”来求补码,因为原码反码,都是不存在的。


南雄市19257038524: 计算机的补码 原码问题 -
字永立静: 1.是这样规定的,如果硬要理解的话,可以这样理解:16位的-128是1000000010000000,而8位恰好位于分界点,在8位的范围内,-127到127肯定是很好理解的,而10000000表示-128理解成-0也行,理解成-128也行,采取后者正好跟16位的兼容,所以更佳!2.定点补码表示纯小数,第一位的1表示负数,0000000表示数值,补码的补码是源码,所以0000000的补码是取反加一,等于1,所以等于-1.

南雄市19257038524: 计算机中的 原码和补码怎么求 他们之间怎么计算? -
字永立静:[答案] 原码,用处不大. 特别是负数的原码,除了用来求补码之外,基本就没有用了. 补码,有用. 计算机里面,表示负数,基本上,都是用补码. 参考:

南雄市19257038524: 原码、反码、补码的产生、应用以及优缺点有哪些? -
字永立静: 1、 原码:是机器数的一种简单的表示法.其符号位用0表示正号,用1表示负号,数值一般用二进制形式表示.优点:最简单直观.缺点:不能直接参加运算,可能会出错.原码来历:在机器中,只能识别二进制数字,所以所以的数字都用...

南雄市19257038524: 计算机组成原理问题,有关原码,补码的定义计算机组成原理 唐朔飞版 p221 当x=0时 [+0.0000]原=0.0000 [ - 0.0000]原=1 - (0.0000)=1.0000 可见[+0]原 不等... -
字永立静:[答案] 问题一:原码中,0有两种表示形式:1(符号位)000与0(符号位)000你可能认为这是多余,恰恰相反,这是必要的.所以定义中才要强调【≥】.至于为什么必要,鄙人猜测是能使计算机更好的表达【数的极限】.比如 lim(a→负0) = ...

南雄市19257038524: 补码的准确定义 -
字永立静:[答案] 原码是一串二进制数,是原始数据,最高位为符号位,正数为0,负数为1. 反码是对原码各位进行求反得到,不改变符号位. 补码分两种情况: 1,对正数来说,补码即原码. 2,对负数来说,补码是原码的反码再加上1. 计算机中一般用补码来表示数据.

南雄市19257038524: 计算机组成原理补码1.0000和10000的原码分别是什么?要详细解释 -
字永立静: 1.0000和10000本就是原码. 8位字长纯小数,第一位为符号位,小数点在第一位后面,后七位为具体数值,如: -0.1001原码表示为1.1001,反码为1.0110,补码为1.0111;-1的补码为1.0000000. 若数据x的形式为x=x0.x1x2…xn(其中x0为符...

南雄市19257038524: 关于计算机内部的原码、补码和反码,以下描述中正确的是( ). -
字永立静:[选项] A. 原码就是计算机中原来使用而现在不用的编码 B. 补码的补码是原码 C. 当原码不够用时,必须使用补码 D. 反码就是原码的绝对值的补码

南雄市19257038524: 关于原码、补码计算有些混淆计算机计算的时候到底是用原码计算还是用补码计算呢?比如 - 7+8是不是要先把 - 7的补码写出来然后加上8?为什么呢 -
字永立静:[答案] 计算机内部用补码计算. -7+8是 -7的补码+8的补码得到二者之和的补码. 计算机内部运算用的是加法器,所以用补码.

南雄市19257038524: 原码、反码、补码,计算机中负数的表示? -
字永立静:[答案] 一:对于正数,原码和反码,补码都是一样的,都是正数本身. 对于负数,原码是符号位为1,数值部分取X绝对值的二进制. 反码是符号位为1,其它位是原码取反. 补码是符号位为1,其它位是原码取反,未位加1. 也就是说,负数的补码是其反码未位...

南雄市19257038524: 正负数的原码、反码和补码的区别 -
字永立静: 正数的原码,反码,补码都是一样的. 负数的原码你应该知道的,就是带符号位的二进制数.反码,符号位不变为1,其他每位二进制数取反,1变0,0变1.补码就是在反码的基础上,符号位不变,最低位加1,得到补码.这里有个简单的求补码的方法,从原码的最低位向最高位看去,遇到第一个1前,保持不变,第一个1前面的二进制串取反(符号位保持不变). 下面是一个例子. x=1011 0110 这是一个负数,它的原码,反码,补码分别是:1011 0110,1100 1001,1100 1010 用上面的那个简单的方法就可以一步写出来了. 有关更详细的原理,可以交流一下.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网