首页 > 编程语言 >python取反操作符的解释

python取反操作符的解释

时间:2024-03-02 20:56:20浏览次数:27  
标签:0000 python 补码 取反 负数 1111 操作符 原码

今天看做词云的代码看到这样一句

words_df = words_df[~words_df.segment.isin(stopwords.stopword)]

刚开始看不懂这个 "~",就去百度了一下,记录下来

(1)在计算机里面,负数是以补码存储的
(2)原码求补码:取反,+1
(3)补码求原码:取反,+1
(4)取反操作是在原码上进行的!

实际的计算结果: ~4 = -5, ~-5 = 4

依据上述第四条,我们的解释思路是,确定原码===> 取反
(1) 求~4, 我们用八进制来表示4:
4的原码: 0000 0100
取反得到: 1111 1011, 观察符号,是负数,因为负数以补码存储的,所以问题转化为:
某个数x的补码是1111 1011,求x的值(由补码求原码)
取反: 0000 0100
+1: 0000 0101 = 5, 加上标点符号(负号) 得到结果: -5

(2) 求 ~-5,同理用八进制表示-5:
因为-5是负数,所以它是以5的补码表示的,所以转化为已知5的补码,求对应的原码,然后在取反.
5补码: 0000 0101,
取反: 1111 1010
+1: 1111 1011, 得到原码
取反: 0000 0100 = 4 ,加上标点负号(正号)得到结果:4

~2
# >>> -3

~0
# >>> -1

~True 
# >>> -2

bool(~1)
# >>> True

~3 in([1,2,3])
# >>> False

标签:0000,python,补码,取反,负数,1111,操作符,原码
From: https://www.cnblogs.com/guanghui-hua/p/18049220

相关文章

  • Python 中的 if __name__ == '__main__' 该如何理解
    结论if__name__=='__main__'我们简单的理解就是:如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。程序入口对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。如果你接触过这些语言,对于程序入口这个概......
  • Python环境安装与配置
    1.浏览器输入python官方网站打开2.选择downloads后,再选择电脑的操作系统,如:Windows3.根据自己的电脑选择合适的版本,如:3.12版4.选择下载好的版本,鼠标右键选择以管理员身份运行5.勾选AddPythontoPATH,点击Customizeinstallation(自定义安装)6.点击next7.选中installPython3.......
  • python入门
    1.标识符:变量名,类名。模块名等,对大小写敏感,长度无限制,但是中间不能有空格,保留字不能用2.变量、常量(变量的值就是常量)3.数据类型,数值型(四种进制数)二进制(0b,0B)八进制(0o,0O)十六进制(0x,0X)复数型num=5+4jprint(num)输出虚部和实部print(num.imag)print(num.real)布尔型通......
  • [python]将多张图片合并为单个pdf文件
    前言最近有个个人需求是要把多个图片文件合并为一个PDF文件,这样方便用PDF阅读器连续看,避免界面点一下,只会图片放大。(比如看漫画)主要思路是先把单张图片转换成单个PDF文件,然后把PDF文件进行合并。原先是用WPS的转换工具做的,但WPS每次只能批量转换30张,如果有大量图片文件,用WPS就不......
  • Python学习笔记03
    函数语法:def函数名(传入参数):函数体return返回值#遍历字符串,并统计字符串的长度str1="helloword"str2="shen_mo_xie_xing"count=0foriinstr1:count+=1print(i,end='')print()print(f"字符串{str1}的长度是{count}")count=0fo......
  • Centos 上python3 pip3安装报错:WARNING: pip is configured with locations that requ
    pip3安装报错:WARNING:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.在网上查一下原因是openssl版本不兼容导致,centos默认带的openssl版本太低,要升级openssl版本。openssl  下载地址:https://www.openssl.org/s......
  • Python日志logging模块
    Python日志logging模块logging---Python的日志记录工具—Python3.12.2文档Pythonlogging模块的基本使用、进阶使用详解_python中logging模块详解-CSDN博客logging模块架构日志级别默认的级别是“WARNING“,意味着只会追踪该级别及以上的事件。级别何时使用......
  • Centos 上安装python3
    1、yum方式安装: 查看yum的python可安装包yumsearchpython安装指定的python版本yuminstallpython3.x86_64-y安装完成:查看安装包的信息:rpm-qa|greppython3 2、编辑安装:下载地址:https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz解压......
  • (33/60)K次取反后最大化的数组和、加油站、分发糖果
    K次取反后最大化的数组和leetcode:1005.K次取反后最大化的数组和贪心法思路两次贪心:(每次取反k--)排序,一次遍历,按绝对值从大到小地把负数取反。如果K次取反没用完,再排序一次,反复取反最小元素。(或者一开始就按绝对值从大到小排序,只需排序一次)复杂度分析时间复杂度:O(Nlo......
  • Python贝叶斯回归分析住房负担能力数据集|附代码数据
    原文链接:http://tecdat.cn/?p=11664最近我们被客户要求撰写关于贝叶斯回归的研究报告,包括一些图形和统计输出。我想研究如何使用pymc3在贝叶斯框架内进行线性回归。根据从数据中学到的知识进行推断 贝叶斯规则是什么? 本质上,我们必须将已经知道的知识与世界上的事实相结合。......