原码、反码和补码的转换及表示范围
3个回答
展开全部
数字在机器中存储都是用二进制来存储的,有符号数则有:原码、反码和补码三种表示方式。这三种表示方式里,最高位均代表符号位,1-负数,0-正数。
1.原码
一个数的原码就是该数直接转换成二进制得到的数字,第一位是符号位。
2.反码
正数的反码是自己本身;负数的反码是原码除符号位不动,其他所有位按位取反。
3.补码
正数的补码是自己本身;负数的补码是反码加一得到的(运算时包括符号位)。
故,正数的原反补码都是相等的,负数的原反补码是相互转换得到的。
举例:
计算机存储并计算8-5,因为CPU只有加法器,故要将8-5转换成8+(-5)来计算。
(+8)
8的原码:0000 1000
8的反码:0000 1000
8的补码:0000 1000
(-5)
-5的原码:1000 0101
-5的反码:1111 1010
-5的补码:1111 1011
8 - 5 = 8 + (-5)= 0000 1000 + 1111 1011 = 0000 0011
0000 0011的符号位是0,则表示正数,原反补码都相同,转化为十进制就是3。
所以,数据在计算机中以补码的形式表示和储存,补码的出现也更加便于计算。
二、原码、反码和补码的表示范围
一般计算机字长32位,即用32位二进制表示数:
原码:-[2^(n-1)-1] ~ 2^(n-1) - 1
反码:-[2^(n-1)-1] ~ 2^(n-1) - 1
补码: -2^(n-1) ~ 2^(n-1) - 1
1.原码
一个数的原码就是该数直接转换成二进制得到的数字,第一位是符号位。
2.反码
正数的反码是自己本身;负数的反码是原码除符号位不动,其他所有位按位取反。
3.补码
正数的补码是自己本身;负数的补码是反码加一得到的(运算时包括符号位)。
故,正数的原反补码都是相等的,负数的原反补码是相互转换得到的。
举例:
计算机存储并计算8-5,因为CPU只有加法器,故要将8-5转换成8+(-5)来计算。
(+8)
8的原码:0000 1000
8的反码:0000 1000
8的补码:0000 1000
(-5)
-5的原码:1000 0101
-5的反码:1111 1010
-5的补码:1111 1011
8 - 5 = 8 + (-5)= 0000 1000 + 1111 1011 = 0000 0011
0000 0011的符号位是0,则表示正数,原反补码都相同,转化为十进制就是3。
所以,数据在计算机中以补码的形式表示和储存,补码的出现也更加便于计算。
二、原码、反码和补码的表示范围
一般计算机字长32位,即用32位二进制表示数:
原码:-[2^(n-1)-1] ~ 2^(n-1) - 1
反码:-[2^(n-1)-1] ~ 2^(n-1) - 1
补码: -2^(n-1) ~ 2^(n-1) - 1
展开全部
原码、反码和补码的转换及表示范围
-----------------
在计算机系统中,数值,一律采用补码表示和存储。
在计算机系统中,只有补码,并没有原码和反码。
转换?
转换什么呢?
在计算机系统中,只有补码。
你是把补码,转换成原码或反码?
计算机也不用原码和反码,你转换出来,干嘛呢?
而且,你也没有地方存放啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询