Python 波浪线与补码

~,用法只有一个那就是按位取反,需要主意的是:

  • ~的按位取反,包括符号位
  • 正数各位取反变为负数,显示时转化为其补码
  • 负数本身需要先转换为补码(符号位不变,各位取反再加 1),再对其补码进行各位去反

1. ~5

5 的二进制为 0101,

~5

  • (1)各位取反,1010
  • (2)变为负数,转化为其补码形式(符号位保持不变),各位取反 1(1101),再加1(1110),也即 -6
>> ~5
>> -6

2. ~(-5)

-5 因为是负数,存储时存储的是其补码:

  • -5 的补码是:1011,
  • ~(-5)将其各位取反(包括符号位),也即 0100(4)
>> ~(-5)
>> 4
    原文作者:Inside_Zhang
    原文地址: https://blog.csdn.net/lanchunhui/article/details/51746477
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞