首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二进制到16位无符号和16位符号大小

二进制到16位无符号和16位符号大小
EN

Stack Overflow用户
提问于 2015-11-12 02:04:57
回答 2查看 2K关注 0票数 0

我因病缺席了一天的课,所以我检查了一下我的教授。那一天网上的资料我被困在这上面了。他的笔记对怎么做没有任何解释。我可以在质量之间进行转换(十进制到八进制,十六进制,二进制等等),但我不能这样做。

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

代码语言:javascript
复制
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

我想即使在我生病的时候我也应该去上课。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-12 02:16:38

标志是第15位。所以你所要做的就是用1来计数位置(即2^place),并将它们相加在一起。

票数 1
EN

Stack Overflow用户

发布于 2015-11-12 02:15:32

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

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

代码语言:javascript
复制
1010 0000 0100 0101 

可以解释为有符号整数或无符号整数,并可根据情况进行解释。当解释为有符号整数时,该值将计算出。

代码语言:javascript
复制
(1 * 2^15) + (1 * 2^13) + (1 * 2^6) + (1 * 2^2) + (1 * 2^0) = 41092

当解释为无符号值时,从最左边位得到符号,从其余位得到整数的值。

代码语言:javascript
复制
- [(1 * 2^13) + (1 * 2^6) + (1 * 2^2) + (1 * 2^0)]  = - 8261

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33663221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档