Python 的按位求补运算符 (~ 波形符) 是如何工作的?

2024-03-26

为什么~2等于-3?如何~操作员工作?


请记住,负数存储为二进制补码的正对应物。作为示例,以下是 -2 的二进制补码表示形式:(8 位)

1111 1110

获得此值的方法是采用数字的二进制表示形式,取其补码(反转所有位)并加一。两个以 0000 0010 开头,通过反转位我们得到 1111 1101。加一得到上面的结果。第一位是符号位,表示负数。

那么让我们看看如何得到 ~2 = -3:

这里又是两个:

0000 0010

只需翻转所有位,我们就得到:

1111 1101

那么,-3 在二进制补码中是什么样子呢?从正3开始:0000 0011,将所有位翻转为1111 1100,加一成为负值(-3),1111 1101。

因此,如果您简单地反转 2 中的位,您将得到 -3 的二进制补码表示形式。

补码运算符 (~) 只是翻转位。由机器来解释这些位。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 的按位求补运算符 (~ 波形符) 是如何工作的? 的相关文章

随机推荐

  • Ruby BCrypt 哈希比较

    我正在尝试使用 Sinatra 和 BCrypt 实现看似非常简单的身份验证方法 但显然我错过了一些东西 用户预先分配了一个临时密码 该密码以明文形式存储在数据库中 我根据临时密码进行身份验证 然后创建 salt 和 password ha
  • 使用 strtotime() 从字符串(各种时间单位)中减去间隔;

    我正在创建一个票务系统 我已经存储了票证创建日期和当前日期之间的间隔 每张票证都有一个存储为字符串的解决时间限制 targetTime 15 分钟 4 小时等 我试图通过从时间限制字符串中减去间隔来计算剩余时间 我尝试在 targetTim
  • 将 NULL 值插入双精度数据类型 MySQL Python

    我有一张桌子 这是创建语句 CREATE TABLE runsettings runnumber mediumint 9 NOT NULL equipment varchar 45 NOT NULL wafer varchar 45 NOT
  • 将 Unix 纪元时间戳转换为 JavaScript 日期时间戳

    我有一个带有 Unix 纪元时间戳的数据库 我想在 Highcharts 图表中绘制这些值 这需要 JavaScript 日期时间戳 自 1970 年 1 月 1 日以来的毫秒数 数据库数组当前如下所示 data 1519395624 10
  • 无法在 Anko 中调用 StartActivityForResult

    我对 android 还很陌生 我正在尝试用 kotlin 来学习它 在这段代码中 mHelp setOnClickListener context startActivity
  • python中连接数据点的线的箱线图

    我试图根据与点相关的特定关系来连接线 在此示例中 线条将连接玩家所在的球场 我可以创建基本结构 但还没有找到一种相当简单的方法来创建此附加功能 import pandas as pd import numpy as np import ma
  • HTML5 Web 应用程序中 OAuth2 的本地存储与 cookie

    我目前正在尝试使用 OAuth2 来开发一个完全用 JavaScript 构建的移动应用程序 该应用程序与 CakePHP API 进行通信 查看以下代码以了解我的应用程序当前的外观 请注意 这是一个实验 因此代码混乱 区域缺乏结构等 va
  • UnsafeQueueUserWorkItem 以及“不传播调用堆栈”到底是什么意思?

    我正在阅读和学习ThreadScheduler以及有关任务的文章并遇到了该功能ThreadPool UnsafeQueueUserWorkItem用于其中之一MSDN 示例 http msdn microsoft com en us lib
  • 使用 C# 在 XML 中进行 SAML 断言

    这是我面临的问题 需要一些帮助 指导 我已经从我的引擎生成了一条 XML 消息 需要将其解析为服务 为此 我必须将该消息更改为 SOAP 消息并在其上插入 SAML 令牌 我正在尝试使用 C 代码执行此操作 以下是我生成的输入消息及其预期输
  • 如何在 Visual Studio Code 中显示函数的使用?

    我使用 Pycharm 时可以按 ctrl 单击函数定义并查看用途 VSC 中有类似的吗 You can use Find All References Shift F12 to get a better view of usage htt
  • 用连字符替换所有非字母和数字的字符[重复]

    这个问题在这里已经有答案了 我面临着 URL 的问题 我希望能够转换可以包含任何内容的标题 并去掉所有特殊字符 这样它们只有字母和数字 当然我想用连字符替换空格 这将如何完成 我听说过很多关于正则表达式 regex 的使用 这应该可以满足您
  • R - 绘制缺少 NA 值的线

    我有以下 data frame 子集 Time A B C 2016 10 07 06 16 46 NA NA 41 2016 10 07 06 26 27 40 39 42 2016 10 07 06 38 23 NA 40 NA 201
  • 为什么 Django 为代理模型创建迁移文件?

    我刚刚创建了一个代理模型 https docs djangoproject com en 1 9 topics db models proxy models并惊讶地发现manage py makemigrations创建一个新的迁移文件mi
  • 问:在场景滚动时禁用“放大/缩小”

    我们使用基于 Roomle Web SDK 的基础存储库 Roomle UI 我们目前正在对此进行定制并将其相应地集成到我们的网站中 我们想通过滚动禁用自动 放大 它会中断预期的用户流程 不幸的是 我们还没有找到一种方法来实现这一点 而不保
  • c++11 中的 库可移植吗?

    c 11 中的库可移植吗 我避免使用 rand 因为我听说它不可移植 你如何定义 便携 如果 便携式 的意思是 在给定相同输入的情况下将产生二进制相同的随机数序列 那么是的 rand不便携 是的 C 随机生成器 http en cppref
  • Matlab 将文件从 Windows 资源管理器拖放到图形 (gui)

    我想知道有一种方法可以从 Windows 资源管理器中拖动文件并将其放入我的 GUI 中 目标应该是获取文件路径 或文件夹路径 并能够使用我自己的加载函数加载它 我准确地说 我在 Windows 10 64 位中使用 Matlab 2015
  • 如何使用 Javascript 禁用功能键?

    我有一个页面 我需要禁用功能键 主要是 F12 开发工具 我在页面中显示了一些敏感数据 因此无论如何我都无法让用户看到 html 并获取隐藏字段 我检查了一些 javascript 它适用于除了 f1 f12 等功能键之外的几乎所有键 无论
  • SQL Server,无法在主键字段中插入空值?

    我已经准备好在这件事上抓狂了 我对 MS SQL 还很陌生 还没有在任何地方看到过类似的帖子 当我尝试做这样的声明时 INSERT INTO qcRawMatTestCharacteristic VALUES NULL 1 1 1 1 1
  • Neo4j https 通信

    有没有办法只允许 https 而不是 http 与 Neo4j 服务器通信 另外 Neo4j Shell 的通信使用哪个通道 http 还是 https 这是来自 Neo4j 文档 HTTPS 支持 http docs neo4j org
  • Python 的按位求补运算符 (~ 波形符) 是如何工作的?

    为什么 2等于 3 如何 操作员工作 请记住 负数存储为二进制补码的正对应物 作为示例 以下是 2 的二进制补码表示形式 8 位 1111 1110 获得此值的方法是采用数字的二进制表示形式 取其补码 反转所有位 并加一 两个以 0000