python二进制转八进制代码_Python学习笔记之二进制、八进制、十六进制相互转换&原码、反码、补码...

二进制、八进制、十六进制相互转换&原码、反码、补码

一、科普电脑存储机制

电脑的存储方式:以二进制的方式存储。

内存:(运行空间,掉电清除)

磁盘:(永久持续化存储空间,除非坏了)

计算机中处理数据的单位:字节(Byte — B)

1B = 8b 【1字节=8位】

1K = 1024B

1M = 2^10KB

1G = 1024M

1T = 1024G

二、二进制、八进制、十六进制相互转换

1、表示方式

二进制:0b 标识

逢二进一

0 + 1 = 1

1 + 1 = 10

1 1 1

1 0 1

------

11 0 0

111 + 101 = 1100

110 + 1011 =10001

1001 + 1011 =10100

八进制:0o

0 1 2 3 4 5 6 7

逢八进一

1 + 6= 7

1 + 7 = 10

12 + 56 = 70

12

56

---

7 0

756 + 342 =1320

756

342

---

1320

521 + 1314 =2035

521

1314

-----

2035

十进制:0d【在python中若没有标明,默认使用十进制】

0 1 2 3 4 5 6 7 8 9

逢十进一

十六进制:0x

0 1 2 3 4 5 6 7 8 9 a b c d e f

逢十六进一

1 + f = 10

5 + d = 12

1f + 2d3 = 2f2

cf4 + 32d = 1021

2eb + 3ed = 6d8

2、相互转换

十进制换算成二进制

倒除法,余数逆序

5--》101

12--》1100

9 --》1001

15 --》1111

21 ---》10101

二进制换算成十进制

当前的数字乘以2的位数次方,最后相加。【位数从0开始数】

位数从右往左数,从0开始 2^0 =1

1 0 1

1x2^2+0x2^1 +1x2^0= 5

1010 =10

11001=25

110110 =54

八进制转换二进制

一位转三位,高位不够补0

12 ---->001010

563 -->101110011

721 -->111010001

542-->101100010

二进制转换为八进制

三位一取:低位开始取,高位不够补0

001011100 ==>134

111 011 101 ==>735

101 101 001==>551

10 101 010 ==>252

十六进制转换二进制

一位转四位,位数不够高位补0

f --> 1111

d --> 1101

3fc ==>11 1111 1100

78a ==> 111 1000 1010

de5 ==>1101 1110 0101

二进制转换十六进制

四位一取,从低位开始取,高位不够补0

10 0111 ==>27

1011 0111 ==>b7

1110 1111 0111 ==>ef7

1 1011 1101 1110 ==>1bde

0110 1101 1011==>6db

3. 在PyCharm中使用.format()函数进行转换

#!/usr/bin/env python

#-- coding: utf-8 --

#-- author:HFZeng --

转二进制

“{0:b}”.format(x)

将x转为二进制

print("{0:b}".format(10))

print("{0:b}".format(0o10))

print("{0:b}".format(0x10))

1010

1000

10000

“{0:o}”.format(x)

将x转为八进制

print("{0:o}".format(0b10))

print("{0:o}".format(10))

print("{0:o}".format(0x10))

2

12

20

“{0:d}”.format(x)

将x转为十进制

print("{0:b}".format(10))

print("{0:b}".format(0o10))

print("{0:b}".format(0x10))

2

8

16

“{0:x}”.format(x)

将x转为十六进制

print("{0:x}".format(0b10))

print("{0:x}".format(0o10))

print("{0:x}".format(10))

2

8

a

三、原码、反码、补码

注意:计算机是以“补码”的形式存储数据

反码、补码是为了让计算机能够处理正、负数之间的运算

1、正数:

原码,反码,补码三码合一

2、负数:

原码:最高位【符号位】为1,其他位与正数的表示相同

反码:除符号位外,其他位按位取反

补码:反码加1

2^8表示无符号数是 0~255, 表示有符号数是 -127~+127

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值