如果F6基数十六进制是带符号的8位整数,它以十进制表示多少?
答案 0 :(得分:6)
F6
是二进制值11110110
。
在二进制补码系统中,第一位用于表示符号。如果为0,则剩余的7位数字代表0-127。如果它是1,那么你使用按位不翻转其他7位,然后加1并否定结果。
所以:
11110110 // Negative, because the first position is 1
1110110 // Removed the leading 1
0001001 // Flip the remaining 7 bits
8 + 1 // Convert bits to decimal values (bits 4 and 1 from the right)
9 + 1 = 10 // Add the 1
因此,F6为-10。
答案 1 :(得分:5)
假设“正常”2的补码,则为-10。在1的补码中它将是-11。签名幅度为-118。
答案 2 :(得分:2)
你可以想到2这样的赞美......第一位被认为是“负面的”所以在一个8位的数字中,通常你会为无符号整数添加它。
11011011
= 1*(2^7)+1*(2^6)+0*(2^5)+1*(2^4)+1*(2^3)+0*(2^2)+1*(2^1)+1*(2^0) = 219
2赞美......
11011011
= -1*(2^7)+1*(2^6)+0*(2^5)+1*(2^4)+1*(2^3)+0*(2^2)+1*(2^1)+1*(2^0) = -37
^ Note the negative
第一位被认为是负数,在8位中这意味着2 ^ 7如果设置为负,其余部分被添加到负数以使其减少负数。如果所有位都是1,则它将为-1。
答案 3 :(得分:1)
答案是-10。
答案 4 :(得分:0)
另一种思考两个补数的方法。添加或删除2个电源位数不会改变任何内容。然后对于任何数字x:x = x + 256 = x - 256(或任何n的x + n * 256)。
现在,当你得到一个数字时,你必须遵循一些约定来找出正确的n。 2的补码的惯例是:如果最高有效位为1则为负数(n = -1),如果为0,则为正数(n = 0)。
实际上你只需将x转换为它的十进制值。
F6 = 15 * 16 + 6 = 246.
因为它大于128(最高位的十进制值),所以删除256.
F6 = -10,其他人也找到了。