1s and 2s complement of a negative number

吃可爱长大的小学妹 提交于 2019-12-02 21:49:47

问题


All answers I seem to find on how to find the 1s (flip the bits of the positive) and the 2s (flip the bits of the positive binary and add 1) complement doesn't seem to answer my question.

My homework assignment asks to find the complement of a negative number.. So instead of starting out with a positive, and needed to find out what its negative is, I am given a negative number and asked to find its complement.

One silly thought is, do I find the positive value binary value, then flip the bits to get my negative number, then flip it again to find my 1s complement of the negative number??


回答1:


It doesn't matter if your starting number is positive or negative - in a two's complement system, -x is the same as ~x + 1. If your original number is positive, the result will be negative, and if the original number is negative, the result will be positive. 8-bit example - binary means 2's complement binary:

x (decimal) | -x (decimal) | x (binary) | -x (binary) | ~x (binary) | ~x+1 (binary)
------------+--------------+------------+-------------+-------------+---------------
     5      |      -5      |  0000 0101 |  1111 1011  |  1111 1010  |  1111 1011
    -5      |       5      |  1111 1011 |  0000 0101  |  0000 0100  |  0000 0101
   110      |    -110      |  0110 1110 |  1001 0010  |  1001 0001  |  1001 0010
   -38      |      38      |  1101 1010 |  0010 0110  |  0010 0101  |  0010 0110

Note the -x (binary) column and the ~x+1 (binary) column are the same.

If you need to get the 1's complement of a number, that's just ~x.



来源:https://stackoverflow.com/questions/18562832/1s-and-2s-complement-of-a-negative-number

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!