鱼C论坛

 找回密码
 立即注册
查看: 2125|回复: 4

[已解决]怎么不用内置函数或者格式化写一个程序将二进制与十进制互相转化

[复制链接]
发表于 2020-8-1 11:50:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助
最佳答案
2020-8-1 11:56:17
本帖最后由 Twilight6 于 2020-8-1 12:10 编辑


这样呗?

  1. user = input('请输入一个二进制数或十进制数:')  # 带 0b 的是二进制数,不带的是十进制

  2. if user[:2] == '0b':
  3.     # 二进制转十进制
  4.     result = 0
  5.     user = user[2:]
  6.     length = len(user)-1
  7.     for i in user:
  8.         result += int(i)*2**length
  9.         length -= 1
  10.     print(result)
  11. else:
  12.     # 十进制转二进制
  13.     user = int(user)
  14.     result = []
  15.     while user:
  16.         result.append(str(user%2))
  17.         user = user // 2
  18.     print('0b'+''.join(reversed(result)))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-1 11:56:17 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-8-1 12:10 编辑


这样呗?

  1. user = input('请输入一个二进制数或十进制数:')  # 带 0b 的是二进制数,不带的是十进制

  2. if user[:2] == '0b':
  3.     # 二进制转十进制
  4.     result = 0
  5.     user = user[2:]
  6.     length = len(user)-1
  7.     for i in user:
  8.         result += int(i)*2**length
  9.         length -= 1
  10.     print(result)
  11. else:
  12.     # 十进制转二进制
  13.     user = int(user)
  14.     result = []
  15.     while user:
  16.         result.append(str(user%2))
  17.         user = user // 2
  18.     print('0b'+''.join(reversed(result)))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-1 15:11:06 | 显示全部楼层

感谢,一直没找到思路
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-1 20:59:55 | 显示全部楼层

帮忙看下我这样哪里有问题好吗
最后一行不知道list怎么做[0:]是字符串的。还有二进制到十进制这里哪里有问题
def function1():
    num=input('输入转换的数字')     #    带0b的是二进制不带的是十进制
    for i in num:
        if '0b' in num:
            lenth=len(num)-1
            num=num[2:]
            return '转化为十进制的结果为'+i*2**lenth
            lenth-=1
        else:
            num=int(num)
            response=[]
            a=num%2
            b=num//2
            response.insert(0,a)
            while b:
                a=b
                a=a%2
                b=b//2
                response.insert(0,a)
                print('转化为二进制的结果是'+response[0:])
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-29 06:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表