正数取反
例如:a=60,60的二进制是0011 1100(最前面的0表示正数),,,(a取反~a ) 输出结果 -61 ,二进制解释:首先对数据的每个二进制位取反,即把1变为0,把0变为1,得 1100 0011(最前面的1表示负数),然后求在一个有符号二进制数的补码形式
(方法是:负数的补码 = {原码符号位不变} + {数值位按位取反后+1}),也就是10111100,加一,就是10111101,即-61
负数取反
-2 二进制是110,取反是001,其补码还是001,即1x=-2,-x-1=1
(正数的补码就是原码)
综上,取反就是先按位取反,然后求补码(正数负数求补码不一样)
或者直接用一个简单的办法:a=x,不论a是正是负
将a取反,~a=-x-1
np.uint8(~a)=255-x
本文详细解析了正数和负数在计算机中如何进行取反操作,包括二进制位取反和补码计算的过程。通过具体实例说明了正数取反后为何会变成负数,以及负数取反后的变化。文章还提供了理解和计算取反结果的简便方法。
1925

被折叠的 条评论
为什么被折叠?



