python二进制反码例题_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停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可。
相关推荐:《Python相关教程》
原码,反码,补码
实际人们看到的数字是原码转化之后显示出来的。
而原码是通过补码得到的。
计算机的所有数据在底层都是以二进制的补码形式存储。
***进制转换的时候需要先把内存存储的补码拿出来变成原码在进行转换输出***
反码:二进制码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
python二进制反码例题_python中的进制转换和原码,反码,补码相关推荐
- day017:Java进制转换、原码反码补码、位运算、位移运算符
一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...
- Java进制转换、原码反码补码
一.负数的表示 最高位(最左侧的位)是用来表示正负的.0代表的整数,1代表负数.最高位称为符号位. 0b0000 1000 所表示的数字是 8 0b1000 1000 所表示的数字是 -8 二.原码反 ...
- 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU
笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...
- 【数电】(一) 进制转换编码 原码,反码,补码
文章目录 前提知识 计算机发展史 集成电路(Integrated Circuit) 数字集成电路 0 1思维 1Bit 机器码 加法器 二进制与十进制之间的转换 BCD编码 原码,反码,补码 原码 反 ...
- C语言复习——按位运算以及各种进制转换和原码、反码、补码
第一次学习时候就似懂非懂,把主要原因归结于对二进制.十进制和十六进制这些相互转换不熟练,还有就是负数.补码什么的不太通透:再次学习还是似懂非懂,做个笔记吧,顺带把各进制.什么原码.反码补码之类的知识补 ...
- C语言简介之进制转换,原码、反码、补码,位运算符,函数
文章目录 进制转换: 十进制转二进制:(转其他进制) 二进制转十进制: 二进制转八进制: 二进制转十六进制: 原码.反码.补码: 位运算符: & ,|, ~, ^, <<, > ...
- 计算机数制(进制转换,原码,反码,补码,真值)
目录 区分进制 带小数点的进制转化 进制转换练习 符号数的表示方法 区分: 考点:给你原码转换补码,补码最负的数的表示,0的表示 原码,反码,补码练习 区分进制 注意微机原理这门课用的是后缀的方式,C ...
- 进制转换,原码补码反码--学习笔记--03
一. 进制转换 1.其他进制到十进制的转换 比如: 十进制 十进制 123=100+20+3 =1* 10^2 + 2 *10^1 +3 * 10^0 =100+20+3 =123 八进制 十进制 1 ...
- html进制转换js代码,JS中的进制转换以及作用
js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: 运行下面代码 //10进制转为16进制 (10).toString(16) ...
最新文章
- Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for i
- Android移动开发之【Android实战项目】activity生命周期与Java中@Override的作用
- 11-jQuery的事件绑定和解绑
- .net Csharpt C# UDP 异步发送信息 代码实例
- 本文中的问题直接重装mysql即可,但是注意数据也会一并消失
- Java面试高频题:Spring Boot+JVM+Nacos高并发+高可用已撸完​
- python画3d图-Python 绘制酷炫的三维图步骤详解
- 《网络基础》- 第3集-IP地址、子网掩码和路由器的作用
- 每个人都应有自己的作品
- vray渲染器的工作流程你清楚吗?
- 一键清理垃圾的bat文件
- 云计算就业前景究竟好不好 零基础如何学云计算
- 出栈顺序判断问题——划线法
- 用java语言编写选课系统_求用JAVA为我写一个简单的选课系统程序,实现增,删,改,查功能...
- 使用markman助力移动应用开发
- 基于单片机智能数字温度采集报警器系统设计-毕设课设资料
- Go语言处理Windows系统的图标ICO文件(下)
- 三类最常用的数据分析工具,你用过哪一类?
- 网络安全之基础入门(一)
- 微信小程序实现锚点跳转
热门文章
- BeyondCompared4提示“缺少评估信息或损坏” 一条命令解决
- 怎么搜索php文件内容,linux怎么搜索文件
- oracle各种查询语句
- 基于JAVA+SpringBoot+Mybatis+MYSQL的在线论坛管理系统
- 基于JAVA+Servlet+JSP+MYSQL的客户充值缴费管理系统
- 基于JAVA+Servlet+JSP+MYSQL的网络考试系统
- Excel文件读取的两种方式
- Mysql InnoDB事务
- Spring 依赖注入(一、注入方式)
- HDU - 2018 母牛的故事