误人子弟呀 误人子弟,看了几篇博客,真的是坑

~ : 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1

1、计算依据:

①正数的原码、反码、补码都是一样的
②负数的补码为符号位不变,剩余位取反再加1
③原码求补码: 取反,+1
④补码求原码: 取反,+1
⑤负数是以补码存储的
⑥取反操作是在原码上进行的
⑦符号位,1表示负数,0表示正数

2、例子
####################
~(-2)
首先你要知道 -2 在计算机里面的二进制形式,由⑤和②可知:
-2 原码:1000 0000 0000 0010
-2 反码:1111 1111 1111 1101 #符号位不变,各位求反
-2 补码:1111 1111 1111 1110 #补码 = 反码 + 1

1111 1111 1111 1110 就是-2在计算机里面的原型
现在开始对他求反,符号位不变,

按位取反: 0000 0000 0000 0001

很明显是一个正数,其原码为其本身,所以输出为1.

#################
~2
2 原码,反码,补码: 0000 0000 0000 0010

按位取反: 1111 1111 1111 1101

这是一个负数该怎么办?能直接求吗?
很显然是不行的,⑥说了:取反操作计算结果是在原码上进行的,⑤也说了:负数是以补码存储的
1111 1111 1111 1101 是 0000 0000 0000 0010 的反码,但我们想要的是结果,而不是在计算机里面的原型,
恰好,④补码求原码: 取反,+1
取反: 1000 0000 0000 0010
加 1: 1000 0000 0000 0011
于是,我们得到了原码,可以计算结果了
1000 0000 0000 0011 = -3

#################
总结,取反很简单,但是要注意,取反后是不是原码,是否可以直接计算结果

python 取反操作符(~)相关推荐

  1. Python ' ~ ' (取反) 操作符解释

    首先你要明白的几个知识点:  (1)在计算机里面,负数是以补码存储的  (2)原码求补码:取反,+1  (3)补码求原码:取反,+1  (4)取反操作是在原码上进行的! 实际的计算结果: ~4 = - ...

  2. 【Pytorch】取反操作符~在Pytorch和python中使用的比较

    python中的取反操作 在python中取反操作符~是对数字的二进制位进行取反,然后返回取反结果对应的十进制数字.这个可以参考:Python3运算符 使用案例如下: num = 60 # 查看二进制 ...

  3. python取反计算

    @[TOC]python取反计算 假设是8位存储,则1的原码为0000 0001,补码为0000 0001(正数的原码.反码.补码都是本身) 按理解~1是按位取反得到1111 1110,计算机以111 ...

  4. python 取反_自从用了这招pandas 空数据处理方法,python编程速度提升了不少

    今天为大家带来的内容是:自从用了这招pandas 空数据处理方法,python编程速度提升了不少 文章内容主要介绍了pandas 空数据处理方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工 ...

  5. python取反操作_在python中对于bool布尔值的取反操作

    背景 根据公司业务的需求,需要做一个对于mysql数据库的大批量更新.脚本嘛也是干干单单.使用了redis的队列做缓存,可以异步并发的多任务进行更新. 有点难受的地方在于,请求访问时,因为一些网速,速 ...

  6. python 取反_利用python怎么对bool布尔值进行取反

    利用python怎么对bool布尔值进行取反 发布时间:2020-12-14 14:49:17 来源:亿速云 阅读:71 这期内容当中小编将会给大家带来有关利用python怎么对bool布尔值进行取反 ...

  7. Python——~取反操作

    ~取反操作 >>>~1 -2 >>>~-1 0 ~:求补码,即将原数(十进制)取相反数再减一.

  8. C语言(算术、左移、赋值、位、sizeof计算大小、取反~、强制转换、条件)操作符..

    1,算术操作符:+ - * /  % float函数,浮点型,在9/2两边,显示小数任一一个数显示小数,结果都会显示4.5 int a = 9 % 2;//(取模,或者取余) printf(" ...

  9. oracle中取反_mysql 取反

    云数据库 MySQL 云数据库(RDS for MySQL)是稳定可靠.可弹性伸缩的云数据库服务.通过云数据库能够让您几分钟内完成数据库部署.云端完全托管,让您专注于应用程序开发,无需为数据库运维烦恼 ...

最新文章

  1. pymsql学习笔记
  2. 让系统命令man汉化
  3. 修改 pip 下载源
  4. PHP框架的ORM思想:O类的实例化 R数据表 M映射XML
  5. Mysql(2)——mysql的配置文件信息(基本信息)
  6. ValueError: Related model 'users.UserProfile' cannot be resolved
  7. hystrix原理_面试必问的SpringCloud实现原理图
  8. Ubuntu下安装配置java及环境变量
  9. Stateflow中的真值表注意事项
  10. Elasticsearch(二) ik分词器的安装 以及 自定义分词
  11. duckduckgo 国内_DuckDuckGo的Instant Answers项目的7课
  12. Flash已死,有事烧纸!
  13. MYSQL have_innodb DISABLED无法创建innodb类型的表
  14. Cygwin下用Open SSH启动SSH服务
  15. 如何高效的批量删除亿级大表数据
  16. Postman安装流程
  17. VS2010中打开项目中的Winform界面报“This method explicitly users CAS policy,which has been obsoleted...”(续)
  18. 移动端自适应方案(转载)
  19. 浏览器攻击框架BeEF简介
  20. 神经网络预测鸢尾花的种类

热门文章

  1. python3.6 ,pyqt5获取海康录像机视频
  2. 华为云桌面使用时的高清程度
  3. Anaconda 使用
  4. 学习笔记1——ERP数据处理(完整、简易)
  5. www.cndigg.com中国掘客 又完成了几个新功能
  6. 什么是DNS缓存?DNS缓存有哪些作用?
  7. java有且只有一个什么_1. 一个Java应用程序必须且只有一个类含有 main_____ 方法....
  8. cocos2dx 精灵点击事件
  9. SQL2012连接字符串
  10. PV,UV,VV,IP解析