0的补码

DNA图谱 / 问答 / 标签

注:数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的补码问题!

常说的数字(整数),分为:负数,零,正数。注意:这里面没有负零。零和正数,变成补码,只要按照数字的二进制写出来就行了。负数,变成补码,方法,楼主也一定知道。关于补码,就这些。根本就不存在“负零的补码”的问题。

为什么负0的补码是00000000而不是11111111+1,谁能帮忙解释一下

如果按照原码取反加1的规则,那么(-0)的补码是(10000000补),那么1-0=(1)+(-0)=(00000001补)+(10000000补)=(10000001补)=(-127),这显然是不对的。所以(-0)的补码不能是10000000,只能是00000000。其实用(10000000补)可以表示(-128)也可以表示(128)也可以什么都不表示,但设计人员规定用它表示(-128)。

0的补码是唯一的吗?

对。0的源码、反码各有2个,补码唯一,为全0.

数值0的补码的负数为什么是00000?

若字长5位:[-0]原 =10000,最高位是符号位,1表示负数,其余是数值位[-0]反 =11111, 将原码除符号位之外的数值位取反得反码[-0]补 =00000,将反码末位加1(最高位进位1自然丢失)得补码

0的补码是什么

0的补码是00000000。 假设机器的位长为0,正数x的最高位为0,其余位为数x的值 (8位长为例)[+0]补= 0 000 000负数x的补码表示为2^n-|x|[-0]补 = 2^n = 10000 0000 = 0000 0000综合[0]补=0000 0000计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。求给定数值的补码分以下两种情况:正数正整数的补码是其二进制表示,与原码相同负数求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1 。同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。

0的补码() A.00H B.0FFH C.0FEH D.01H

选A ,H表示16进制,其实0FFH相当于16进制0FF,就和八进制前面有0x一样的意义

负0的原码为什么负0的补码

补码的存在是为了变减法为加法,简化了计算过程,即硬件的设计难度.首先要知道两个零是怎么来的,0包括+0和-0,在原码和反码中根据其计算公式,有两种形式,而对于补码来说+0,真值为0,000000和-0,其真值为1,0000000补码:一个数如果为正,则它的原码、反码、补码相同;一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1.为了简单起见,我们用1个字节来表示一个整数:问题:0的补码表示:+0的补码:00000000-0的补码:第一步:11111111第二步+1=100000000第三部:进位1被丢弃。

为什么+0和-0的补码都是00000000这是计算所得,还是人为计算机规定?

在计算机中,负数以其正值的补码形式表达。什么叫补码呢?这得从原码,反码说起。原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。比如00000000000000000000000000000101是5的原码。反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。取反操作指:原为1,得0;原为0,得1。(1变0;0变1)比如:将00000000000000000000000000000101每一位取反,得11111111111111111111111111111010。称:11111111111111111111111111111010是00000000000000000000000000000101的反码。反码是相互的,所以也可称:11111111111111111111111111111010和00000000000000000000000000000101互为反码。补码:反码加1称为补码。也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。比如:00000000000000000000000000000101的反码是:11111111111111111111111111111010。那么,补码为:11111111111111111111111111111010+1=11111111111111111111111111111011所以,-5在计算机中表达为:11111111111111111111111111111011。转换为十六进制:0xfffffffb。再举一例,我们来看整数-1在计算机中如何表示。假设这也是一个int类型,那么:1、先取1的原码:000000000000000000000000000000012、得反码:111111111111111111111111111111103、得补码:11111111111111111111111111111111可见,-1在计算机里用二进制表达就是全1。16进制为:0xffffff。128=10000000按位取反:01111111加1:10000000没有溢出,因为没有别的数用10000000来表示。这都是定义好的,记住就是了

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

0的原码是不惟一的:[+0]原=00000000,[-0]原=100000000的反码也是不惟一的:[+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]补

0的补码是0,还是00000000

要搞清楚补码的真正定义,还有就是如何计算的。负数的补码是这个数的反码加1,就如-0,他的反码为11111111,再加1后就为(1)00000000。

0的补码是什么?

0的补码是00000000。 假设机器的位长为0,正数x的最高位为0,其余位为数x的值 (8位长为例) [+0]补= 0 000 000 负数x的补码表示为2^n-|x| [-0]补 = 2^n = 10000 0000 = 0000 0000 综合[0]补=0000 0000 计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。 求给定数值的补码分以下两种情况: 正数 正整数的补码是其二进制表示,与原码相同 负数 求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1 。 同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。

0的补码是什么?

0的补码是00000000。 假设机器的位长为0,正数x的最高位为0,其余位为数x的值 (8位长为例)[+0]补= 0 000 000负数x的补码表示为2^n-|x|[-0]补 = 2^n = 10000 0000 = 0000 0000综合[0]补=0000 0000计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。求给定数值的补码分以下两种情况:正数正整数的补码是其二进制表示,与原码相同负数求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1 。同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。