二进制,八进制,十六进制之了解

举报
老虎也淘气 发表于 2023/10/09 20:07:18 2023/10/09
【摘要】 为了将整数转换为二进制、八进制或十六进制的文本串,可以分别使用bin() ,oct() 或hex() 函数:x = 1234bin(x)‘0b10011010010’oct(x)‘0o2322’hex(x)‘0x4d2’如果你不想输出0b , 0o 或者0x 的前缀的话,可以使用format() 函数format(x, ‘b’)‘10011010010’format(x, ‘o’)‘2322...

为了将整数转换为二进制、八进制或十六进制的文本串,可以分别使用bin() ,oct() 或hex() 函数

x = 1234
bin(x)
‘0b10011010010’
oct(x)
‘0o2322’
hex(x)
‘0x4d2’

如果你不想输出0b , 0o 或者0x 的前缀的话,可以使用format() 函数

format(x, ‘b’)
‘10011010010’
format(x, ‘o’)
‘2322’
format(x, ‘x’)
‘4d2’

整数是有符号的,所以如果你在处理负数的话,输出结果会包含一个负号

x = -1234
format(x, ‘b’)
‘-10011010010’
format(x, ‘x’)
‘-4d2’

如果你想产生一个无符号值,你需要增加一个指示最大位长度的值。比如为了显示32 位的值,可以像下面这样写:

x = -1234
format(2**32 + x.'‘b’)‘11111111111111111111101100101110’

format(2**32 + x, ‘x’)
‘fffffb2e’

为了以不同的进制转换整数字符串,简单的使用带有进制的int() 函数即可

int(‘4d2’, 16)
1234
int(‘10011010010’, 2)
1234

练习:

#进制转换
x = int(input("请输入一个整数:"))
print("该整数的二进制表示为",bin(x),"八进制表示为",oct(x),"十六进制表示为",hex(x))

十进制转N进制

十进制转二进制
十进制整数转二进制

十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。

例题: 135D = ______ B
**解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再倒取。得到结果。

十进制转二进制
十进制小数转二进制

十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。

具体做法是:

用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

例题: 0.68D = ______ B(精确到小数点后5位)

**解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到要求精度。得到结果:
十进制小数转二进制
十进制转八进制
思路和十进制转二进制一样,参考如下例题:

例题: 10.68D = ______ Q(精确到小数点后3位)

**解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整。得到结果:
十进制转八进制
十进制转十六进制
思路和十进制转二进制一样,参考如下例题:

例题: 25.68D = ______ H(精确到小数点后3位)

**解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.
在这里插入图片描述

.R进制转十进制

二进制转十进制

**方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)
例题: 1001 0110B = ______ D

**解析:**如下图所示。得到结果:150D.
二进制转十进制
八进制转十进制
八进制转十进制的方法和二进制转十进制一样。

例题: 26Q = ______ D\n\n**解析:**如下图所示。得到结果:22D.
八进制转十进制
十六进制转十进制
例题: 23daH = ______ D
**解析:**如下图所示。得到结果:9178D.
十六进制转十进制
二进制转八进制
二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。

例题: 1010 0100B = ____Q

**解析:**计算过程如下图所示。得到结果:244Q.
二进制转八进制

二进制转十六进制
二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。

例题: 1010 0100B = ____H

**解析:**计算过程如下图所示。得到结果:a4H
二进制转十六进制

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。