繁体   English   中英

使用一个或两个的补码时,符号位会改变吗?

[英]Does the sign-bit change when using one's or two's complement?

我一直在努力寻找简单的概念,但是我似乎一直在组合和混合二进制转换。

如果为您提供二进制数字并应用1的补码,则将所有位取反。 使0的1和1的0。 对于2的补码,请像1的补码一样反转位,然后加1。

这是否意味着您实际上将所有位都反转了? 由于某些原因,我一直认为除最左边的位(符号位)外,所有位都应反转。 以下是一些示例。.有人可以告诉我是否正确执行此操作吗?

1101001

1的补偿:0010110

2的补偿:0010111


01110101

1的补偿:10001010

2的补偿:10001011


011110110

1的补偿:100001001

2的补偿:100001011


谢谢。

您的概念完全正确:

  • 一个人的补语=颠倒一切
  • 二进制补码=反转所有内容, 包括最左边的位 ,然后加1

您的前两个示例是正确的,最后一个示例有些奇怪,因为您通常使用字节的倍数(8位)并且示例具有9位,但是仍然适用相同的规则:

        (0000000)011110110
ones -> (1111111)100001001
twos -> (1111111)100001010  <-- I think you had a typo here, you stated the result would be 100001011

这是一篇有关该主题的不错的摘要文章: http : //academic.evergreen.edu/projects/biophysics/technotes/program/2s_comp.htm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM