用Python 3.1.3 写几个进制转换的程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python 3.1.3 写几个进制转换的程序相关的知识,希望对你有一定的参考价值。

1.将输入的十进制数转换成二进制、八进制和十六进制并显示在一行中。
2.使用减权法进行十-二进制转换。
3.输入一个二进制数,将其转换成十进制数并显示。

要求:编写程序,功能是:输入一个0-65535之间的十进制正整数(要求在程序中进行范围检查),将其转换为对应的16位二进制数并显示在屏幕上(不要用math库,只用标准函数)。
算法采用除2取余法,如下:
0)定义16个元素的列表b,用于存放16个二进制位,初值为全0。(也可定义b为空字符串,16个二进制位转换成字符‘0’或‘1’添加到b)
1)输入一个小于65536的十进制数保存到变量d,并检查范围。
2)循环执行以下运算,共循环16次(或d等于0为止):
d/2,余数作为本位的结果(位0到位15),整数部分作为下一次的被除数送到d。
(若b定义为字符串,则d/2的余数应转换为字符串加到b中。)
3)打印b

只回答第一题
b=[0]*16
c=[0]*8
e=[0]*4
d=65536
while d>65535:
d=int(input("Please input a decimal number<65536: "))
p=d
m=d
for i in range(0,16,1):
b[15-i]=d%2
d=d//2
for i in range(0,8,1):
c[7-i]=p%8
p=p//8
for i in range(0,4,1):
e[3-i]=m%16
m=m//16
if e[3-i]<=9:
e[3-i]=e[3-i]
else:
if e[3-i]==10:
e[3-i]='a'
else:
if e[3-i]==11:
e[3-i]='b'
else:
if e[3-i]==12:
e[3-i]='c'
else:
if e[3-i]==13:
e[3-i]='d'
else:
if e[3-i]==14:
e[3-i]='e'
else:
if e[3-i]==15:
e[3-i]='f'
print(b,c,e)追问

后两道题有方法吗?

参考技术A 不用那么复杂吧?
def nconvert(n):
if isinstance(n, basestring):
if not n.isdigit():
print 'number must be an integer'
return

n = int(n)
elif not isinstance(n, int):
print 'number must be an integer'
return

if not (0 < n < 65535):
print 'number must be greater than 0 and less than 65535'
return

t = []
for i in range(16):
n, k = divmod(n, 2)
t.insert(0, str(k))

return ''.join(t)

if __name__ == '__main__':
d = input('Enter an integer: ')
print(nconvert(d))

06 python语言中的进制转换

python语言中的进制转换

1、python语言中支持哪些进制,以及这些进制的表示法
2、如何在不同的进制之间进行转换
//py 语言支持4种进制
十进制 0-9 // 123 默认就是 十进制
十六进制 0-9 A-F //0x 0xFF12E 0x 开头的就是 十六进制
二进制 //0b 0b11010101 //这里用0B 也是可以的但是业内都是用小写的0b表示 表示二进制
八进制 //0o 0o4324 // 0o 开头的就是 八进制
除了十进制外,其他进制数字前面都是0

转换 主要是十进制向 二 八 十六 进制转换 然后就是 二 八 十六 进制 转换为十进制
//从其他进制转换到十进制,要使用int函数,该函数有2个参数
参数1:字符串类型表示待转换的数
参数2:数值类型,

例子
# coding:utf-8

print(int("0b11010101",2))      #  213  //这个就表示 2进制11010101 转换为十进制的数为
print(int("0o4324",8))         # 2260      8进制转换为 
print(int("0xFF12E",16))      # 1044782    十六进制转换为 

现在呢,我们要倒过来
也就是十进制转换为二 八 十六进制
例子  比如要把 432 转换为二 八 十六进制
# 432  转换为二 八 十六进制
# coding:utf-8
print(bin(432))        # 这个是转换为 二进制
print(oct(432))        # 这个是转换为 八进制
print(hex(432))          # 这个是转换为 十六进制
输出结果为
0b110110000
0o660
0x1b0

也可以直接转换 把十六进制转换为二进制
print(bin(0xFF12E))
输出结果
0b11111111000100101110

print(hex(0o4324))  把八进制转换为16进制
输出结果为
0x8d4

print(0b110101) //直接这样写的话 就是输出的是10进制的结果
53
print(0x123FE)
print(0o33333)
74750
14043

以上是关于用Python 3.1.3 写几个进制转换的程序的主要内容,如果未能解决你的问题,请参考以下文章

python学习第四周之内置方法详解

写几个简单用artTemplate的例子

尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框

用 MPI IO 写几个分布式数组

二进制八进制十进制十六进制之间的转换

计算机进制及转换