python小技巧:求32位二进制负数的补码,附剑指offer中的应用

article/2025/9/18 22:18:37

实现方法:

先上操作,python里面的负数直接将其和 0xffffffff 进行 与(&) 操作即可得到其补码:

def func(n):if n<0:n=n&0xffffffff #这个是python里面的,python和别的语言存储负数的格式有点区别

在这里插入图片描述

剑指offer例题(应用):

题目:

输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。

题解python代码:

class Solution:def NumberOf1(self, n):# write code hereif n<0:n=n&0xffffffff #这个是python里面的,python和别的语言存储负数的格式有点区别temp=0x00000001count=0for i in range(64):if n&temp:count=count+1temp=temp<<1return count

以下是 计算补码 原理部分,有兴趣的同学可以看一下:

——————————————————————————————————

存储方式:

Python 对于负数的存储方式和 c++/c/java 不一样
1、在 python 里面,负数的存储方式

a = bin(-3)
print(a)a = bin(3)
print(a)b = bin(-3 & 0xffffffff)
print(b)c = bin(0xfffffffd)
print(c)

在这里插入图片描述
也就是说:

  1. Python 中的整型是补码形式存储的
  2. Python 中 bin 一个负数(十进制表示),输出的是它的原码的二进制表示加上个负号
  3. Python 中 bin 一个负数(十六进制表示),输出的是对应的二进制表示。(注意此时)

所以为了获得负数(十进制表示)的补码,需要手动将其和十六进制数 0xfffffffd 进行按位与操作,得到结果也是个十六进制数,再交给 bin() 进行输出,得到的才是你想要的补码表示。

2、但是在c/c++/java里面负数都是以补码的形式进行存储的,《计算机原理》显示,计算机内部采用2的补码(Two’s Complement)表示负数。

3、这就出现了在Python里面需要将负数和0xffffffff进行与操作,来去掉负数前面的负号,可以理解为超过32位的东西就不进行考虑了,这进行与操作的具体步骤是:如果是正数,直接与;如果是负数,先去掉最前面的负号,再取反,再加1,再进行与操作。从而得到负数的补码。

参考:https://www.runoob.com/w3cnote/python-negative-storage.html


http://chatgpt.dhexx.cn/article/jyl7xEi7.shtml

相关文章

android 16进制负数转化,十进制负数转换为二进制、八进制、十六进制的知识分享...

程序猿们或许对二进制都不陌生,二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。但是很多人都会将二进制转换成整数,但是如何用二进制表示负数呢?有的人会说,在二进制前面加个负数符合。而计算机只能认识0 和 1,又怎么去加个额外的负数符号…

pandoc不是内部或外部命令

1.安装pandoc win7&#xff0c;在Anaconda prompt中 pandoc 显示 ‘pandoc’不是内部或外部命令&#xff0c;也不是可运行的程序分析原因&#xff0c;应该是没添加路径&#xff0c; 环境变量中有 “安装环境\Anaconda3\Scripts”&#xff0c;也不知道应该添加啥 我的情况是…

cmd中运行pip显示不是内部或外部命令

如果在使用python pip命令安装库的时候出现了以下报错&#xff0c;可以用下面两种方法解决 C:\Users\小雨>pip pip 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 1. 检查一下是否正确安装了Python。 2. 将Python的安装路径添加到系统环境变量中。通常…

解决:python不是内部或外部命令

在命令行窗口&#xff08;Linux 称为终端&#xff09;中输出 python 命令后&#xff0c;却显示“‘python’不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件”&#xff0c;具体现象如下&#xff1a; 出现此问题&#xff0c;是因为在当前的路径中找不到 Python…

vue不是内部或外部命令

作为一个vue小白&#xff0c;最近为vue安装真是操碎了心。 无论怎么查找网上的教程&#xff0c;还是解决不了“vue不是内部或外部的命令”诸如此类的问题。 好在功夫不负有心人&#xff0c;终于在多次的试验下&#xff0c;成功解决了这个问题。 第一种情况&#xff1a; vue不…

cmd运行ping不是内部或外部命令_处理CMD系统提示不是内部或外部命令也不是可运行的程序或批处理文件的方案...

近几日有网友询问小编&#xff0c;声称自己在运行CMD命令提示符窗口&#xff0c;出现不是内部或外部命令也不是可运行的程序或批处理。这种故障是怎么产生的呢&#xff1f;其实很简单&#xff0c;就是因为系统环境变量异常&#xff0c;只要我们能重新配置系统默认值就可以修复好…

Python pip不是内部或外部命令怎么办

目录 1.打开此电脑​编辑 2.点击右上角的三个点找到属性​编辑 3.找到高级系统设置​编辑 4.点击环境变量​编辑 5.点击Pyth&#xff0c;再点击编辑 ​编辑 6.点击新建&#xff0c;并将“7”中复制的路径粘贴上来 ​编辑 7.找到你自己Python安装的盘&#xff0c;点进去&a…

‘node‘ 不是内部或外部命令

问题详情&#xff1a; 输入命令&#xff0c;提示&#xff1a;node 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 解决办法&#xff1a; 1、点击高级系统设置 2、点击环境变量 3、点击新增按钮&#xff0c;填写变量名和变量值&#xff0c;点击“确定”按钮…

Vue 不是内部或外部命令解决办法

‘vue’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件 今天被这个问题困扰很久&#xff0c;所以写篇文章总结一下&#xff0c;避免下次再遇到同样的问题导致大量时间流逝 解决这个问题的方法就是找到vue.cmd这个文件存在的目录&#xff0c;一般是这个目录&…

cmd运行jmeter提示不是内部或外部命令

学习jmeter生成报告的时候&#xff0c;运行生成报告的命令&#xff0c;一直提示不是内部或外部命令~~ 如果未生成结果文件&#xff08;.jtl&#xff09;,可运行如下命令生成报告: jmeter -n -t source.jmx -l result.jtl -e -o /tmp/ResultReport 参数: -n &#xff1a;以非…

jps不是内部或外部命令

JPS不是内部或外部命令 需要把Path环境变量中的JDK和JRE的bin分开 原来&#xff1a; 更改后&#xff1a; 终端可以使用jps命令&#xff1a;

windows make 不是内部或外部命令

1 window 下 make 报错 make 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 2.解决 装windows下的make工具mingw32-make。MinGWMinGW官网下载&#xff1a;http://www.mingw.org 1 安装 mingw-get-setup.exe&#xff0c;直接默认安装就好了。 2 安装完之后…

‘keytool‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

最近Android项目需要jks获取相关的SHA1到第三方平台获取相关的appkey之类的东西 于是cmd打开命令窗口直接输入keytool -list -v -keystore D:\xxxx.jks 然后直接出现了&#xff1a; keytool 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件 解决方案&#xff…

chmod不是内部或外部命令

opencv用mingw64在Windows系统中编译出现的问题 opencv&#xff08;V3.4.7&#xff09; mingw64&#xff08;MinGW-W64 GCC-8.1.0_x86_64-8.1.0&#xff09; Windows10 Professional 64bit 错误描述&#xff1a; ‘chmod’不是内部或外部命令&#xff0c;也不是可运行的程序 或…

java 不是内部或外部命令_win8系统运行java提示“java不是内部或外部命令”怎么办...

win8系统win8系统运行java突然提示“java不是内部或外部命令”&#xff0c;刚刚接触win8 64位系统的新手用户不知道怎么解决“java不是内部或外部命令”的问题&#xff0c;针对此问题&#xff0c;小编研究整理出两个方法给大家&#xff0c;想进一步了解的用户一起往下看。 方法…

python在cmd中显示不是内部或外部命令,cmd中显示python不是内部或外部命令该怎么办...

cmd中显示python不是内部或外部命令该怎么办 今天给大家介绍一下cmd中显示python不是内部或外部命令的解决方法。如图,显示如下提示。 1. 首先我们需要找到之前安装python的目录,然后找到“python.exe”,双击。 2. 执行成功后,我们发现是可以进入python页面的。 3. 这就说明…

Python不是内部或外部命令的(完美解决)

前言 最近鼓捣鼓捣Python&#xff0c;写个小程序爬爬网站&#xff0c;发现有人在写用爬虫搞CSDN的自动签到&#xff08;然并卵&#xff08;luan&#xff09;&#xff09;&#xff0c;然后发现在执行安装selenium的命令的时候提示“Python不是内部或外部命令” 其实&#xff0c;…

vue 不是内部或外部命令

通过vue指令使用脚手架初始化项目时&#xff0c;在cmd中输入vue init webpack vue_project&#xff0c;终端报错: vue 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。解决方案&#xff1a; 1、确定npm是否已正确安装&#xff0c;在cmd中输入如下指令&#…

执行cmd命令提示不是内部或外部命令

有时我们在执行cmd命令会提示不是内部或外部命令&#xff0c;也不是可运行的程序 注册文件时一闪而过可以在bat文件中添加一行代码 pause&#xff0c;用于输出错误信息 解决方案 1.第一种方法 找到C:\Windows\System32路径下的cmd。可直接使用这个cmd执行命令 2.第二种方…

出现“ ‘xxx‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。”的一个解决方法

‘XXX’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 前提是已经安装成功某一个插件。 有时候&#xff0c;我们想用cmd&#xff08;以管理员身份运行&#xff09;执行命令的时候&#xff0c;总会出现’XXX’ 不是内部或外部命令&#xff0c;也不是可运行…