[英]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
谢谢。
您的概念完全正确:
您的前两个示例是正确的,最后一个示例有些奇怪,因为您通常使用字节的倍数(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.