二进制到 16 位无符号 & 16 位有符号大小

Binary to 16 Bit unsigned & 16 bit signed magnitude

我因病错过了 class 的一天,所以我查看了我的教授。 material 那天在线,我一直坚持这一点。他的笔记没有解释如何去做。我可以在质量之间进行转换(十进制到八进制、十六进制、二进制等),但我不能这样做。

有什么帮助吗?一个例子真的可以帮助我快速理解。我将 post 他的幻灯片示例:

1010 0000 0100 0101 as an unsigned value
= (1 * 2^15) + (1 * 2^13) + (1 * 2^6) + (1 * 2^2) + (1 * 2^0)
= (32,768) + (8192) + (64) + (4) + (1)
= 32,768 + 8261 = 41,029 base 10



1010 0000 0100 0101 as a signed value
= - [(1 * 2^13) + (1 * 2^6) + (1 * 2^2) + (1 * 2^0)] 
= -8,261 base 10

我想我真的应该参加 class 即使我生病了。

有符号整数和无符号整数之间的区别在于其中一位,在这种情况下,最左边的位用于指示值是正数还是负数。在这种情况下,如果最左边的位为 1,则值为负,当最左边的位为 0 时,值为正。

所以在你教授给出的例子中,

1010 0000 0100 0101 

可以解释为有符号整数或无符号整数,视情况而定。当解释为有符号整数时,该值的计算结果为

(1 * 2^15) + (1 * 2^13) + (1 * 2^6) + (1 * 2^2) + (1 * 2^0) = 41092

当解释为无符号值时,您从最左边的位获取符号,从其余位获取整数值

- [(1 * 2^13) + (1 * 2^6) + (1 * 2^2) + (1 * 2^0)]  = - 8261

希望对您有所帮助!

符号是第15位。所以你所要做的基本上就是用一个数(即 2^place)并将它们加在一起。