15588686105 发表于 2020-8-1 11:50:26

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

求助

Twilight6 发表于 2020-8-1 11:56:17

本帖最后由 Twilight6 于 2020-8-1 12:10 编辑


这样呗?

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

if user[:2] == '0b':
    # 二进制转十进制
    result = 0
    user = user
    length = len(user)-1
    for i in user:
      result += int(i)*2**length
      length -= 1
    print(result)
else:
    # 十进制转二进制
    user = int(user)
    result = []
    while user:
      result.append(str(user%2))
      user = user // 2
    print('0b'+''.join(reversed(result)))

15588686105 发表于 2020-8-1 15:11:06

Twilight6 发表于 2020-8-1 11:56
这样呗?

感谢,一直没找到思路

15588686105 发表于 2020-8-1 20:59:55

Twilight6 发表于 2020-8-1 11:56
这样呗?

帮忙看下我这样哪里有问题好吗
最后一行不知道list怎么做是字符串的。还有二进制到十进制这里哪里有问题
def function1():
    num=input('输入转换的数字')   #    带0b的是二进制不带的是十进制
    for i in num:
      if '0b' in num:
            lenth=len(num)-1
            num=num
            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)
页: [1]
查看完整版本: 怎么不用内置函数或者格式化写一个程序将二进制与十进制互相转化