在计算机内部,8位带符号二进制整数(补码)可表示的十进制最小值是?
展开全部
8位二进制补码表示带符号二进制整数,其范围是-128~+127,所以最小值为-128:10000000。
8位二进制补码是采用最高位来表示符号,低7位来表示数值大小的一种编码。8位二进制码有256种状态,可以表示256个数。如果表示范围是-127~+127的话,那就会存在两个0,就是+0和-0。而实际上,0是没有正负的,不需要有两个0。因此,就用+0(00000000)来表示0,而用-0(10000000)来表示-128,因为10000000b=128d,而恰好它的最高位即符号位=1表示负数。这是人为规定的,但这个规定与二进制补码规则不矛盾。
8位二进制补码是采用最高位来表示符号,低7位来表示数值大小的一种编码。8位二进制码有256种状态,可以表示256个数。如果表示范围是-127~+127的话,那就会存在两个0,就是+0和-0。而实际上,0是没有正负的,不需要有两个0。因此,就用+0(00000000)来表示0,而用-0(10000000)来表示-128,因为10000000b=128d,而恰好它的最高位即符号位=1表示负数。这是人为规定的,但这个规定与二进制补码规则不矛盾。
展开全部
你的思路是正确的,只是你的表述有误,在第二行中间“反码”应改为“补码”。
下面给你捋一遍整个过程。
首先将给出的数根据给定位数用原码表示(无论正数负数)。即-513的原码为1010
0000
0001(12位)。
其次,求出上述原码相对应的补码,符号位不变,其它位变反后加一。即-513的补码为1101
1111
1111(12位)。
然后,对求出的补码进行符号扩展(取符号位填充到数的前方使其凑足位数,其它位保持不变直接写到低位)。注意与原码的符号扩展不一样。即1111
1101
1111
1111(16位)。
最后,对补码进行算术右移。负数补码的算术右移是添1。注意与逻辑右移、负数原码、正数算术右移区别。结果是1111
1110
1111
1111(16位)。
你的结果是正确的,只是其中涉及一些概念必须弄清楚,否则容易混!
下面给你捋一遍整个过程。
首先将给出的数根据给定位数用原码表示(无论正数负数)。即-513的原码为1010
0000
0001(12位)。
其次,求出上述原码相对应的补码,符号位不变,其它位变反后加一。即-513的补码为1101
1111
1111(12位)。
然后,对求出的补码进行符号扩展(取符号位填充到数的前方使其凑足位数,其它位保持不变直接写到低位)。注意与原码的符号扩展不一样。即1111
1101
1111
1111(16位)。
最后,对补码进行算术右移。负数补码的算术右移是添1。注意与逻辑右移、负数原码、正数算术右移区别。结果是1111
1110
1111
1111(16位)。
你的结果是正确的,只是其中涉及一些概念必须弄清楚,否则容易混!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询