python 取反操作符(~)
误人子弟呀 误人子弟,看了几篇博客,真的是坑
~ : 按位取反运算符:对数据的每个二进制位取反,即把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 取反操作符(~)相关推荐
- Python ' ~ ' (取反) 操作符解释
首先你要明白的几个知识点: (1)在计算机里面,负数是以补码存储的 (2)原码求补码:取反,+1 (3)补码求原码:取反,+1 (4)取反操作是在原码上进行的! 实际的计算结果: ~4 = - ...
- 【Pytorch】取反操作符~在Pytorch和python中使用的比较
python中的取反操作 在python中取反操作符~是对数字的二进制位进行取反,然后返回取反结果对应的十进制数字.这个可以参考:Python3运算符 使用案例如下: num = 60 # 查看二进制 ...
- python取反计算
@[TOC]python取反计算 假设是8位存储,则1的原码为0000 0001,补码为0000 0001(正数的原码.反码.补码都是本身) 按理解~1是按位取反得到1111 1110,计算机以111 ...
- python 取反_自从用了这招pandas 空数据处理方法,python编程速度提升了不少
今天为大家带来的内容是:自从用了这招pandas 空数据处理方法,python编程速度提升了不少 文章内容主要介绍了pandas 空数据处理方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工 ...
- python取反操作_在python中对于bool布尔值的取反操作
背景 根据公司业务的需求,需要做一个对于mysql数据库的大批量更新.脚本嘛也是干干单单.使用了redis的队列做缓存,可以异步并发的多任务进行更新. 有点难受的地方在于,请求访问时,因为一些网速,速 ...
- python 取反_利用python怎么对bool布尔值进行取反
利用python怎么对bool布尔值进行取反 发布时间:2020-12-14 14:49:17 来源:亿速云 阅读:71 这期内容当中小编将会给大家带来有关利用python怎么对bool布尔值进行取反 ...
- Python——~取反操作
~取反操作 >>>~1 -2 >>>~-1 0 ~:求补码,即将原数(十进制)取相反数再减一.
- C语言(算术、左移、赋值、位、sizeof计算大小、取反~、强制转换、条件)操作符..
1,算术操作符:+ - * / % float函数,浮点型,在9/2两边,显示小数任一一个数显示小数,结果都会显示4.5 int a = 9 % 2;//(取模,或者取余) printf(" ...
- oracle中取反_mysql 取反
云数据库 MySQL 云数据库(RDS for MySQL)是稳定可靠.可弹性伸缩的云数据库服务.通过云数据库能够让您几分钟内完成数据库部署.云端完全托管,让您专注于应用程序开发,无需为数据库运维烦恼 ...
最新文章
- pymsql学习笔记
- 让系统命令man汉化
- 修改 pip 下载源
- PHP框架的ORM思想:O类的实例化 R数据表 M映射XML
- Mysql(2)——mysql的配置文件信息(基本信息)
- ValueError: Related model 'users.UserProfile' cannot be resolved
- hystrix原理_面试必问的SpringCloud实现原理图
- Ubuntu下安装配置java及环境变量
- Stateflow中的真值表注意事项
- Elasticsearch(二) ik分词器的安装 以及 自定义分词
- duckduckgo 国内_DuckDuckGo的Instant Answers项目的7课
- Flash已死,有事烧纸!
- MYSQL have_innodb DISABLED无法创建innodb类型的表
- Cygwin下用Open SSH启动SSH服务
- 如何高效的批量删除亿级大表数据
- Postman安装流程
- VS2010中打开项目中的Winform界面报“This method explicitly users CAS policy,which has been obsoleted...”(续)
- 移动端自适应方案(转载)
- 浏览器攻击框架BeEF简介
- 神经网络预测鸢尾花的种类
热门文章
- python3.6 ,pyqt5获取海康录像机视频
- 华为云桌面使用时的高清程度
- Anaconda 使用
- 学习笔记1——ERP数据处理(完整、简易)
- www.cndigg.com中国掘客 又完成了几个新功能
- 什么是DNS缓存?DNS缓存有哪些作用?
- java有且只有一个什么_1. 一个Java应用程序必须且只有一个类含有 main_____ 方法....
- cocos2dx 精灵点击事件
- SQL2012连接字符串
- PV,UV,VV,IP解析