Python 中的“按位非”不考虑 2 的补码

2023-11-27

我需要在Python中执行“~”操作,但不考虑2的补码。我设法通过使用来做到这一点XOR,你知道另一种方法吗? (更高效)

a = 0b101
b = 0b10101

print bin(a ^ (2 ** a.bit_length() - 1)) #0b10
print bin(b ^ (2 ** b.bit_length() - 1)) #0b1010

就是这样~已经这样做了。棘手的部分是 Python 具有无限长度的整数,因此当你反转一个数字时,它会被符号扩展(至少从概念上来说)是无限多个 1。这意味着你得到负数。

>>> bin(~0b101)
'-0b110'
>>> bin(~0b10101)
'-0b10110'

要将这些转换为无符号数字,您需要决定您关心多少位。也许您正在使用 8 位字节。然后你可以将它们与一个字节的 1 位进行 AND 运算:

>>> bin(~0b101 & 0xFF)
'0b11111010'
>>> bin(~0b10101 & 0xFF)
'0b11101010'

或者,如果您想匹配输入数字的精确位长度,您的解决方案是合理的。为了提高效率,您可以将指数切换为左移。使用它可能会更清楚~ and &代替^.

>>> bin(~a & ((1 << a.bit_length()) - 1))
'0b10'
>>> bin(~b & ((1 << b.bit_length()) - 1))
'0b1010'

(我怀疑像这样的硬编码掩码& 0xFFFF将是实践中正确的解决方案。我想不出一个好的现实世界用例bit_length()基于答案。)

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

Python 中的“按位非”不考虑 2 的补码 的相关文章

  • 让 VoiceChannel.members 和 Guild.members 返回完整列表的问题

    每当我尝试使用 VoiceChannel members 或 Guild members 时 它都不会提供适用成员的完整列表 我从文本命令的上下文中获取 VoiceChannel 和 Guild 如下所示 bot command name
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的

随机推荐

  • 根据日期选择最近 5 行

    我已经有一段时间没有接触 PHP 了 并尝试选择数据库中最近的 5 个条目并将它们打印到屏幕上 我看到不再推荐使用 mysql 命令并使用 PDO gt mysql 代替 我的查询是这样的 SELECT id title date auth
  • Windows堆块头解析和大小计算

    如何根据从内存读取的原始字节计算堆块大小 我尝试了下面的事情 0 001 gt heap Index Address Name Debugging options enabled 1 00500000 2 00280000 3 008f00
  • Python中如何获取实例变量?

    Python中是否有内置方法来获取所有类实例变量的数组 例如 如果我有以下代码 class hi def init self self ii foo self kk bar 我有办法做到这一点 gt gt gt mystery method
  • 准备语句是否可以保护您的数据库?

    我知道你们中的一些人可能会结束这个问题 但我的问题是由你们和你们的回答提出的 我正在阅读过去两个小时有关 SQL 注入以及如何保护数据库的问题和解答 我看到的大量网页和教程也是如此 我发现一半的人声称准备语句确实可以保护您的数据库 而另外
  • Visual Studio 2010:复制类的最简单方法?

    有没有一种简单的方法可以用不同的名称复制一个类 不确定这是否可以作为最简单的方法 但如果您有锐锐 你可以使用它的复印类型重构以复制类 接口 结构 并控制副本所在的命名空间并在副本中命名 这意味着如果您复制具有 5 个构造函数的类 则副本将全
  • typescript 4.4.4:tsconfig 路径未按预期解析

    我的 tsconfig json compilerOptions target ES2018 module CommonJS lib ESNext ESNext AsyncIterable skipLibCheck true sourceM
  • 致命:用户“postgres”的密码身份验证失败

    在 ubuntu 中收到此错误消息 在 pg hba conf 文件中 我尝试在不同时间使用 ident peer trust md5 但没有成功 请帮忙 在你的 pg hba conf 中 IPv4 local connections T
  • 如何在 Axis2 客户端中正确使用 WS-Addressing?

    全部 我正在尝试编写一个在 Axis2 1 5 中调用 Web 服务客户端的 Junit 测试 但我对如何准确地将其设置为使用 WS Addressing 感到困惑 我使用 wsdl2java 生成了一个客户端存根 并且使用 axis2 二
  • itextsharp 测量块宽度/高度

    我正在尝试使用 iTextSharp 进行一些精确对齐 但我一直达不到要求 因为我无法找到一种方法来获取块或段落的宽度 高度值 如果我创建一个具有特定字体 大小和文本的段落 那么它的尺寸应该是已知的 对吗 我知道默认的左 右 中心对齐对我来
  • 在 ASP.NET Core 中将 Razor 视图渲染为字符串

    I use 剃刀引擎用于解析我的 MVC 6 项目中的模板 如下所示 Engine Razor RunCompile File ReadAllText fullTemplateFilePath templateName null model
  • 模块 t 导入意外值 null

    在将我的应用程序 Angular2 express starter 的一个分支 部署到 Heroku 时 我遇到了这个奇怪的问题 https totalautosapp herokuapp com 起初我以为是 Heroku 但我将它部署到
  • 这种形式的方法调用仅允许类方法错误

    我不断收到此错误 在FGetZoneData I have var SelectedDept String implementation procedure TFGetZoneDept GetClick1 Sender TObject va
  • 限制选择列表的初始宽度

    我有一个选择列表 其中一些客户为他们输入了非常长的选项 这破坏了设计 我想知道是否有一种方法可以在选择小部件上设置固定宽度 但它生成的下拉菜单仍然足够宽以显示所有选项 由于您没有指定所需的浏览器支持 因此这可能是也可能不是解决方案 这适用于
  • 脚本是否有一种相当简单的方法来判断(从上下文)“她”是否是所有格代词?

    我正在编写一个脚本来反转一段文本中的所有性别 因此所有性别单词都会被交换 男人 与 女人 交换 她 与 他 交换 等等 但是存在歧义 因为是否应该用 他 或 他的 代替 她 好的 让我们像语言学家一样看待这个问题 我在这里大声思考 Her
  • Android,布局中的透明子GLSurfaceView? [复制]

    这个问题在这里已经有答案了 可能的重复 Android OpenGL ES 透明背景 我想在正常的 2d ui 布局屏幕上显示一些 3d 对象 2d ui 屏幕有背景图像 GLSurfaceView 是内容布局的子级 我在 ApiDemos
  • NSUserDefaults 是否会通过更新 Appstore 中的应用程序而持续存在?

    是这样吗 当您向 App Store 上的应用程序提交更新时 NSUserDefaults 是否会重置 或者是否会重置 我的应用程序在更新时崩溃 但在完全下载时不会崩溃 所以我试图确定更新的会话与新下载的会话中可能有什么不同 干杯 缺口 除
  • 如何使用 dplyr 将累积列添加到 R 数据帧?

    我有同样的问题这个帖子 但我想用dplyr 使用 R 数据框 例如 df lt data frame id rep 1 3 each 5 hour rep 1 5 3 value sample 1 15 如何添加与 id 匹配的累积和列 W
  • Scrapy process_links 和 process_request 的示例代码

    我是 Scrapy 的新手 我希望有人能给我一些很好的示例代码 说明何时 process links 和 process request 最有用 我看到 process links 用于过滤 URL 但我不知道如何编码 谢谢 你的意思是sc
  • 从 R 中的字符串中删除表情符号

    我有一个推文列表 其中许多包含需要删除的表情符号 在 R 中执行此操作最有效的方法是什么 我尝试了以下方法 该方法应该用空白替换所有以 开头的单词 但我收到此错误 some tweets lt gsub w some tweets Erro
  • Python 中的“按位非”不考虑 2 的补码

    我需要在Python中执行 操作 但不考虑2的补码 我设法通过使用来做到这一点XOR 你知道另一种方法吗 更高效 a 0b101 b 0b10101 print bin a 2 a bit length 1 0b10 print bin b