python中的进制转换和原码,反码,补码

python中的进制转换和原码,反码,补码

计算机文件大小单位

b = bit 位(比特)

B = Byte 字节

1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

1PB = 1024TB

1EB = 1024PB

进制分类

二进制:由2个数字组成,有0 和 1 python中标志:0b

八进制:由8个数字组成,有0,1,2,3,4,5,6,7 python中标志:0o

十进制:有10个数字组成,有0,1,2,3,4,5,6,7,8,9 python中标志:无

十六进制:有16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(进制字母大小写都可以,分别代表10,11,12,13,14,15) python中标志:0x

python中的进制转换:

其他进制转换为十进制:int(相应进制)

其他进制转换为二进制:bin(相应进制)

其他进制转换为八进制:oct(相应进制)

其他进制转换为十六进制:hex(相应进制)

二进制 转化成 十进制:

例: 0b10100101 

运算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7=

1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165

八进制 转化成 十进制:

例: 0o127

运算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87

十六进制 转化成 十进制:

例: 0xff

运算:15*16^0 + 15*16^1 = 255

十进制 转化成 二进制:

426 => 0b110101010 

运算过程: 用426除以2,得出的结果再去不停地除以2,

直到除完最后的结果小于2停止,

在把每个阶段求得的余数从下到上依次拼接完毕即可

十进制 转化成 八进制:    

426 => 0o652

运算过程: 用426除以8,得出的结果再去不停地除以8,

直到除完最后的结果小于8停止,

在把每个阶段求得的余数从下到上依次拼接完毕即可

十进制 转化成 十六进制:   

运算过程: 用426除以16,得出的结果再去不停地除以16,

直到除完最后的结果小于16停止,

在把每个阶段求得的余数从下到上依次拼接完毕即可。

原码,反码,补码

实际人们看到的数字是原码转化之后显示出来的。

而原码是通过补码得到的。

计算机的所有数据在底层都是以二进制的补码形式存储。

***进制转换的时候需要先把内存存储的补码拿出来变成原码在进行转换输出***

反码:二进制码0变1,1变0叫做反码,反码用于原码补码之间的转换。

补码:用来做数据的存储运算,可以实现计算机底层的减法操作,因而提出(可以表达出一个数的正负)。

也就是说默认计算机只会做加法,例:5+(-3) => 5 - 3。

乘法除法是通过左移和右移 << >> 来实现。

正数高位补0,负数高位补1。

正数:

原码 = 反码 = 补码

负数:

反码 = 原码取反(除高位)

补码 = 反码加1

反码 = 补码减1

原码 = 反码取反(除高位)

我们会发现,在取反前减1和在取反后加1的效果是一样的,这就和-2-1 = -(2+1)一个道理,所以会得出这样的规律:

原码 = 补码取反加1

补码 = 原码取反加1

一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 叫符号位正数为0, 负数为1。

比如

正数1在计算机中的存储即为

0 00000000000000000000001

负数1 在计算机中的存储即为

1 00000000000000000000001

一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。

正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反。

正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1。

所以原码,反码,补码正数情况下是一致的,负数情况下是不一致的。

计算机的运算过程实际就是补码相加的一个过程。

比如-2 + 3

-2 的原码为

1 000000000000000000000000010

反码为:

1 111111111111111111111111101

补码为:

1 111111111111111111111111110

3的原码为

0 000000000000000000000000011

反码为:

0 000000000000000000000000011

补码为:

0 000000000000000000000000011

那么二者补码相加结果为

1 111111111111111111111111110

+

0 000000000000000000000000011

=

10 000000000000000000000000001(计算机存储为32位,故前面溢出的1被舍弃,高位为0)

0 000000000000000000000000001

结果为1

再比如-2 + 1

-2 的原码为

1 000000000000000000000000010

反码为:

1 111111111111111111111111101

补码为:

1 111111111111111111111111110

1的原码为

0 000000000000000000000000001

1的反码为:

0 000000000000000000000000001

1的补码为:

0 000000000000000000000000001

二者的补码相加结果为

1 111111111111111111111111110

+

0 000000000000000000000000001

=

1 111111111111111111111111111

得出的补码转化为原码, 最低位减一得到反码,然后除符号位外所有位取反,得到结果

1 000000000000000000000000001

结果为1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/216611.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何无线桥接路由器,让你的网络覆盖范围变大,做到网络信号无缝连接

你是否希望通过在两个路由器之间创建无线网桥(网络桥接)来扩大网络覆盖范围?好吧,你来对地方了!在当今日益互联的世界,拥有一个强大可靠的网络比以往任何时候都更重要。 无线网桥允许你无线连接两个或多个路由器,有效地扩展网络覆盖范围,并在更大的区域提供无缝的互联…

巧借C++算法实现冒泡排序算法

目录 引言冒泡排序原理具体实现步骤示例代码时间复杂度和稳定性优化可能性结束语 引言 作为计算机专业出身的开发者&#xff0c;以及从事软件开发相关的小伙伴&#xff0c;想必对C语言并不陌生&#xff0c;它是一门非常厉害的编程语言&#xff0c;不仅是基于程序底层的语言&a…

Proteus8.16仿真软件安装图文教程(Proteus 8 Professional)

Proteus8.16 &#x1f527;软件安装包下载链接&#xff1a;&#x1f527;视频教程&#x1f527;1 安装软件解压&#x1f527;2 安装&#x1f527;3 破解&#x1f527;4 汉化 &#x1f527;软件安装包下载链接&#xff1a; Proteus8.16软件下载链接 1、本文关于Proteus8.16 SP…

关于“你对SpringCloud的理解”

看看普通人和高手是如何回答这个问题的&#xff1f; 普通人 Spring Cloud 是一套微服务解决方案 它包括配置中心、RPC 通信、服务注册、服务熔断等组件 高手 Spring Cloud 是一套 分布式微服务的技术解决方案 它提供了快速构建分布式系统的 常用的一些组件 比如说配置…

人工智能与供应链行业融合:开启智能化供应链的新时代

随着人工智能技术的快速发展&#xff0c;供应链行业正迎来革命性变革。本文将探索人工智能在供应链管理中的应用领域&#xff0c;并分析其带来的益处和挑战&#xff0c;展望人工智能与供应链融合的未来发展趋势。 引言 供应链管理是企业运营中不可或缺的重要组成部分。它涵盖了…

Typora免费版安装教程(仅供学习)

目录 一、Typora简介二、Typora安装三、Typora补丁四、Typora使用体验五、总结 一、Typora简介 Typora是一款非常流行的Markdown编辑器&#xff0c;它能够将Markdown文本转化为漂亮的排版&#xff0c;并且支持实时预览。Typora具有简单易用的界面&#xff0c;使得用户可以轻松地…

微机原理9

一、单项选择题(本大题共15小题,每小题3分、共45分。在每小题给出的四个备选项中,选出一个正确的答案,请将选定的答案填涂在答题纸的相应位置上。) 8088 系统的内存最大容量为 16MB. 其地址总线为&#xff08;&#xff09; A. 16 位 B. 20 位 C. 24 位 D. 32 位 2,以CPU为核心…

鸿宇多用户商城user.php RCE漏洞复现

0x01 产品简介 鸿宇多用户商城是一款支持各行业的多商家入驻型电商平台系统,商家版APP,微信商城,小程序及各种主流营销模块应有尽有,是一个功能强大的电子商务平台,旨在为企业和个人提供全面的在线购物解决方案。 0x02 漏洞概述 鸿宇多用户商城 user.php 存在任意命令执行漏洞…

无人机停机坪的主要功能有哪些

随着无人机行业领域的不断完善&#xff0c;无人机停机坪作为一项关键基础设施&#xff0c;正发挥着越来越重要的作用。无人机停机坪也叫无人机机巢、无人机机库、无人机机场。无人机停机坪不仅是无人机的“家”&#xff0c;更是其高效运行的关键环节。让我们一同探索无人机停机…

SQL Sever 基础知识 - 数据筛选(3)

SQL Sever 基础知识 - 四、数据筛选 第7节 BETWEEN7.1 BETWEEN 运算符概述7.2 BETWEEN 示例7.2.1 BETWEEN 与数字示例7.2.2 BETWEEN 和日期示例 第8节 LIKE8.1 LIKE运算符概述8.2 转义字符8.3 LIKE 示例8.3.1 % (百分号) 通配符示例8.3.2 _(下划线)通配符示例8.3.3 [字符列表] …

【Qt开发流程】之定时器事件与随机数示例

描述 QObject是所有Qt对象的基类&#xff0c;提供了Qt中基础的定时器支持。通过QObject::startTimer()函数&#xff0c;可以使用毫秒为单位的时间间隔来启动一个定时器。该函数返回一个唯一的整数定时器ID。该计时器现在将以规律的间隔触发&#xff0c;直到显式调用QObject::k…

安卓apk抓包(apk抓不到包怎么办)

起因 手机&#xff08;模拟器&#xff09;有时候抓不到apk的包&#xff0c;需要借助Postern设置一个代理&#xff0c;把模拟器的流量代理到物理机的burp上。 解决方案 使用Postern代理&#xff0c;把apk的流量代理到burp。 Postern是一个用于代理和网络流量路由的工具&#xf…

智能优化算法应用:基于黑猩猩算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于黑猩猩算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于黑猩猩算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.黑猩猩算法4.实验参数设定5.算法结果6.参考文献7.…

根文件系统lib库添加与初步测试

一. 简介 我们在编译 busybox源码时&#xff0c;选择的是动态编译&#xff0c;所以&#xff0c;制作生成的 根文件系统中/bin或 /sbin目录下软件运行时会调用到一些库文件的。库文件就是交叉编译器的库文件。 前面我们编译 busybox源码时&#xff0c;选择动态编译&#xff0…

APP逆向工具环境安装

环境安装及配置&#xff1a; 1.JDK安装及配置链接&#xff1a;https://pan.baidu.com/s/146I4vDJdz8YeR0OEqLS8xw 提取码&#xff1a;7h00 2.SDK环境配置链接&#xff1a;https://pan.baidu.com/s/1A8rwqyw8Nn7p93Axqpll3A 提取码&#xff1a;cwv43.NDK环境配置链接&#xff1…

YITH WooCommerce Social Login跨境电商网站社交登录高级版插件

点击阅读YITH WooCommerce Social Login跨境电商网站社交登录高级版插件原文 YITH WooCommerce Social Login跨境电商网站社交登录高级版插件让您的用户节省时间并通过他们的社交资料之一登录或注册网站。 您如何从中受益&#xff1a; 用户无需填写表格、插入个人数据&#…

华清远见嵌入式学习——C++——作业5

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;//沙发 类 class Sofa { private:string sitting; //是否可坐double *cost; //花费 public://无参构造函数Sofa(){}//有参构造函数Sofa(string s,double c):sitting(s),cost(new double(…

Python面向对象练习

Python面向对象练习 class Enty:blood100name""atackvalue100team0domain[1] #1,land 2 airdef setTeam(self,team0):self.teamteamdef atack(self,Enty):if self.teamEnty.team:print("不能向盟军开火")self.info()passelse :# print(self.domain)ss…

Python入门07循环及常见的数据结构

目录 1 循环的语法结构2 break和continue的示例3 可迭代对象4 列表5 元组6 列表和元组的应用场景7 集合8 字典9 生成器 1 循环的语法结构 在Python中&#xff0c;循环是一种控制结构&#xff0c;用于重复执行一段代码&#xff0c;直到满足特定条件。Python中有两种循环结构&am…

【超详细教程】基于html+js实现轮播图

轮播图是现代网页设计中常见的元素之一&#xff0c;它能够展示多张图片或内容&#xff0c;在有限的空间内循环播放&#xff0c;提升网页的视觉效果和用户体验。下面将以一个简单的网页轮播图为例&#xff0c;说明如何基于HTML和JavaScript实现。 ​ 1、R5Ai智能助手 chatgpt国…