原码 反码 补码 及 python的位运算

2024-08-27 09:18

本文主要是介绍原码 反码 补码 及 python的位运算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

令计算机字长为8位
原码: 正数转化为2进制,负数第一位取1。
1 : 0000 0001
-1 : 1000 0001

反码:
正数的原码不变,负数为原码符号位不变,其余取反。
1 : 0000 0001
-1 : 1111 1110

补码:
正数原码不变,负数为原码符号位不变,其余的按位取反再加一,故1000 0000可以表示为-128
1: 0000 0001
-1 :1111 1111
在这个链接里面有原理的详尽的解释:

https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

Python中的按位运算符有:左移运算符(<<),右移运算符(>>),按位与(&),按位或(|),按位翻转(~)。这些运算符中只有按位翻转运算符是单目运算符,其他的都是双目运算符。
python中的&:
A&B
利用A,B的补码按位与(1&1=1,1&0=0,0&0=0),然后把得到的补码还原,1&1=1
python中的|:
A|B
利用A,B的补码按位并(1|1=1,1|0=1,0|0=0),然后把得到的补码还原。1|0=1
python中的^:
A^B
利用A,B的补码按位异或(1^1=0,1^0=1,0^0=0,即相同为0,不同为1),然后把得到的补码还原。1^1=0
python中的~:
~A
A的补码按位取反(~1=0,~0=1),得到的为补码,输出还原结果。~1=-2(因为1的补码为0000 0001,按位取反为1111 1110 这个是-2的补码)
python中的>>:
A>>n
A的补码按位向右移动n位,左边缺少的地方补符号位(即正数补0,负数补1)(相当于除以2的n次方取整 -8>>1=-8//2=-4 -8>>2=-8//4=-2)
python中的<<:
B<< n
B的补码按位向做移动n为,右边缺少的补0(相当于乘以2 ,4<<1=4*2=8,4<<2=4*4=16)
注意:python的<<,与c和java中的不一样,因为他们有字符长度,8位,16位,32位,所以32位为例,如果1<<31=-2147483648,1<<32=0,因为高位溢出,但是在python中1<<31=2147483648,1<<32=4294967296,因为在python中整数是不限长度的(即不存在高位溢出)

这篇文章讲的比较详细,但是例子有错误:http://blog.csdn.net/xtj332/article/details/6639009

这篇关于原码 反码 补码 及 python的位运算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111252

相关文章

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、

浅析Python中的绝对导入与相对导入

《浅析Python中的绝对导入与相对导入》这篇文章主要为大家详细介绍了Python中的绝对导入与相对导入的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1 Imports快速介绍2 import语句的语法2.1 基本使用2.2 导入声明的样式3 绝对import和相对i

Python中配置文件的全面解析与使用

《Python中配置文件的全面解析与使用》在Python开发中,配置文件扮演着举足轻重的角色,它们允许开发者在不修改代码的情况下调整应用程序的行为,下面我们就来看看常见Python配置文件格式的使用吧... 目录一、INI配置文件二、YAML配置文件三、jsON配置文件四、TOML配置文件五、XML配置文件

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

一文详解如何在Python中使用Requests库

《一文详解如何在Python中使用Requests库》:本文主要介绍如何在Python中使用Requests库的相关资料,Requests库是Python中常用的第三方库,用于简化HTTP请求的发... 目录前言1. 安装Requests库2. 发起GET请求3. 发送带有查询参数的GET请求4. 发起PO

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Python进行PDF文件拆分的示例详解

《Python进行PDF文件拆分的示例详解》在日常生活中,我们常常会遇到大型的PDF文件,难以发送,将PDF拆分成多个小文件是一个实用的解决方案,下面我们就来看看如何使用Python实现PDF文件拆分... 目录使用工具将PDF按页数拆分将PDF的每一页拆分为单独的文件将PDF按指定页数拆分根据页码范围拆分

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应