多个二进制转十进制的算法

enumerate 是 Python 中的一个内置函数,它用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,通常用在 for 循环当中。使用 enumerate 可以同时获取到每个元素的索引和值,这在很多情况下都非常有用。

下面是一个使用 enumerate 的例子:

fruits = ['apple', 'banana', 'cherry']  
for index, fruit in enumerate(fruits):  
    print(index, fruit)

 这段代码会输出:

0 apple  
1 banana  
2 cherry

 同样用for循环也可以表示:

 i = 0
 seq = ['one', 'two', 'three']
 for element in seq:
    print i, seq[i]
     i += 1
 
0 one
1 two
2 three
  1. 逆序转二进制,权值计算,使用enumerate()函数。
binary_number = "1101"

decimal_number = 0
for i, digit in enumerate(binary_number[::-1]):  #同时输出index 和 值
    decimal_number += int(digit) * (2 ** i)

print(decimal_number)

2.正序

s="1010/1100/"
ans,t=0,0
for i in s:
    if "0"<=i<="1":
        t=t*2+int(i)
    else:
        ans+=t
        t=0#当遇到/时t清零,以便下一个字节的计算
print(ans)

3.for循环 逆序,与1有异曲同工之妙。

binary_number = '1010'  
decimal_number = 0  
  
# 从二进制数的最后一位开始遍历  
for i in range(len(binary_number) - 1, -1, -1):  
    # 获取当前位的值('0' 或 '1'),并将其转换为整数  
    bit = int(binary_number[i])  
    # 计算当前位的十进制值,并累加到结果中  
    decimal_number += bit * (2 ** (len(binary_number) - 1 - i))  
  
print(decimal_number)

4.知识拓展之reversed()

def my_reversed(seq):  
    """模拟 reversed() 函数的行为"""  
    # 获取序列的长度  
    length = len(seq)  
      
    # 定义一个生成器函数,用于逆序迭代序列  
    def reverse_iterator():  
        # 从序列的最后一个元素开始迭代  
        for i in range(length - 1, -1, -1):  
            yield seq[i]  
      
    # 返回生成器对象  
    return reverse_iterator()  
  
# 测试模拟的 reversed() 函数  
binary_number = '1010'  
for bit in my_reversed(binary_number):  
    print(bit, end='')
0101   输出结果

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值