Python将十进制数值和二进制数值进行相互转换

二进制与十进制进行转换

# 二进制转十进制
def transform(num):
    numlength = len(num)
    sum = 0 * 2 + int(num[0])
    i = 1
    while i < numlength:
        sum = sum * 2 + int(num[i])
        i += 1
    print(num,'的十进制为:',sum)
    
# 十进制转二进制 
def ten_to_two(num):
  binary_list = []
  binary = num % 2
  divide = num
  while True:
    binary_list.append(str(binary)) #需要将里面的数字转成字符串,用于join方法解析
    divide = int(divide / 2)
    binary = divide % 2
    if binary == 0 and divide == 0:
      break
  arr = list(reversed(binary_list))  #使用 list(reversed(array)) 对列表进行反向排序
  print(num , '的二进制数为:',''.join(arr))#使用 .join将数组直接转成字符串


if __name__ == '__main__':
  print('输入 1 进行二进制转十进制运算,输入 2 进行十进制转二进制运算')
  select = int(input('请选择运算类型:'))
  if select == 1:
    num = input('请输入二进制数字:')
    transform(num)
  elif select == 2:
      num = int(input('请输入十进制数字:'))
      ten_to_two(num)
  else:
    print('输入错误,请检查后重新输入')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

讷言丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值