二进制,八进制,十六进制之了解
为了将整数转换为二进制、八进制或十六进制的文本串,可以分别使用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))
十进制转二进制
十进制整数转二进制
十进制整数转换成二进制采用“除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.
**方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)
例题: 1001 0110B = ______ D
**解析:**如下图所示。得到结果:150D.
八进制转十进制
八进制转十进制的方法和二进制转十进制一样。
例题: 26Q = ______ D\n\n**解析:**如下图所示。得到结果:22D.
十六进制转十进制
例题: 23daH = ______ D
**解析:**如下图所示。得到结果:9178D.
二进制转八进制
二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。
例题: 1010 0100B = ____Q
**解析:**计算过程如下图所示。得到结果:244Q.
二进制转十六进制
二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。
例题: 1010 0100B = ____H
**解析:**计算过程如下图所示。得到结果:a4H
- 点赞
- 收藏
- 关注作者
评论(0)