计算机视觉可能会用到的:数的取反操作,即a取反得~a,a可正可负

本文详细解析了正数和负数在计算机中如何进行取反操作,包括二进制位取反和补码计算的过程。通过具体实例说明了正数取反后为何会变成负数,以及负数取反后的变化。文章还提供了理解和计算取反结果的简便方法。

正数取反

例如: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

1和255是白色

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值