`

妙趣横生的python 算法 之 2进制转10进制

阅读更多
# -*- coding:utf8 -*-
import os
import sys

#2进制 to 10进制
def binary2decimal(binary = "0001"):
    '''
    根据栈后进先出的特性,我们使用栈完成2 to 10 的 转换
    算法:
        公式: Xn,Xn-1,.....X1,X0 = X0 * 2 ** 0,X1 * 2**1,.......Xn-1 * 2 ** n-1.Xn *2 ** n
        1)将栈有大到小压入栈。
        2)逐个出栈,* 2 ** i ,这里i为出栈元素的个数,并将数据累加。
        3) 打印出结果。
    '''
    bs = binary
    #定义Stack
    stack = []
    sum = 0
    #初始化栈
    for i in xrange(len(bs)):
        stack.append(bs[i])
    #开始计算
    for i in xrange(len(stack)):
        value  = stack.pop()
        sum +=  int(value) * ( 2 ** i )
    
    print  "decimal is : %s"  % sum
    
#运行脚本
if __name__ =="__main__":
    binary2decimal("0111")
分享到:
评论
12 楼 shuiguomayi 2011-04-16  
bin=lambda s: sum( [ (ord(v)-48)<<i for i,v in enumerate(s[::-1]) ]  ) 
这儿干嘛也来下(ord(v)-48呢, 这也很c.

bin=lambda s: sum( [ int(v)<<i for i,v in enumerate(s[::-1]) ]  )  这样也可以.
11 楼 david_je 2011-01-21  
print "find %s index is %s" %(find,mid) 
10 楼 zffl 2010-06-18  
闲云无心 写道
这个太c化了,python没必要写那么长的...

bin=lambda s: sum( [ (ord(v)-48)<<i for i,v in enumerate(s[::-1]) ]  )



太棒了
9 楼 zxp8216 2010-05-29  
在讨论中进步啊,愈加清晰了
8 楼 jiangduxi 2010-05-14  
确定复杂了点!
7 楼 coffeesweet 2010-05-12  
确实,搞复杂了,倒序就行
6 楼 liyiwen007 2010-05-09  
lzyzizi 写道
edisonlz 写道
这个我可能没有表达明确,不好意思啊
这个是通过2-》10 学习栈的数据结构 :)


一点也不妙趣横生,为什么要用栈啊。。。倒着遍历不就行了 binary[::-1]

这位老兄说得是,学习下数据结构倒也无可厚非,但内容真的是一点也不“妙趣横生”啊……
5 楼 lzyzizi 2010-05-08  
edisonlz 写道
这个我可能没有表达明确,不好意思啊
这个是通过2-》10 学习栈的数据结构 :)


一点也不妙趣横生,为什么要用栈啊。。。倒着遍历不就行了 binary[::-1]
4 楼 闲云无心 2010-05-05  
这个太c化了,python没必要写那么长的...

bin=lambda s: sum( [ (ord(v)-48)<<i for i,v in enumerate(s[::-1]) ]  )


3 楼 edisonlz 2010-05-05  
这个我可能没有表达明确,不好意思啊
这个是通过2-》10 学习栈的数据结构 :)
2 楼 jjx 2010-05-04  
<p>
</p>
<pre name="code" class="python">int('0111',2)</pre>
 
1 楼 Hooopo 2010-05-04  
"0111".to_i(2) #=> 7

相关推荐

    妙趣横生的算法(C语言实现).zip

    《妙趣横生的算法(C语言实现)》最大的特色在于实例丰富,题材新颖有趣,实用性强,理论寓于实践之中。通过《妙趣横生的算法(C语言实现)》的学习,可以使读者开阔眼界,提高编程的兴趣,提高读者的编程能力和应试能力...

    《妙趣横生的算法》源代码

    《妙趣横生的算法》是一本旨在让读者在学习算法的过程中体验到乐趣的书籍,其源代码压缩包包含了书中所有算法实现的详细代码。这些源码是理解算法原理、提高编程技能的重要参考资料,尤其适合计算机科学的学生和对...

    妙趣横生的算法C语言实现.pdf

    《妙趣横生的算法(C语言实现)》最大的特色在于实例丰富,题材新颖有趣,实用性强,理论寓于实践之中。通过《妙趣横生的算法(C语言实现)》的学习,可以使读者开阔眼界,提高编程的兴趣,提高读者的编程能力和应试能力...

    妙趣横生的算法PDF

    "妙趣横生的算法"这个标题暗示我们即将探讨的不是普通的枯燥理论,而是充满趣味性的算法概念,这可能是通过生动的例子或者创新的方式进行阐述。这份PDF文件很可能是为了帮助初学者和有经验的开发者更好地理解和应用...

    妙趣横生的算法 C语言实现源码

    《妙趣横生的算法(C语言实现)》最大的特色在于实例丰富,题材新颖有趣,实用性强,理论寓于实践之中。通过《妙趣横生的算法(C语言实现)》的学习,可以使读者开阔眼界,提高编程的兴趣,提高读者的编程能力和应试能力...

    1.3《妙趣横生的算法(C语言实现 第2版)》.rar

    《妙趣横生的算法(C语言实现 第2版)》是一本专为初学者设计的算法教程,它以C语言作为实现工具,深入浅出地介绍了算法的基础知识和实践应用。C语言以其简洁、高效的特性,是学习算法的理想选择,而这本书的第二版...

    妙趣横生的算法(C语言实现)-杨峰[带完整书签]

    妙趣横生的算法(C语言实现)-杨峰[带完整目录]pdf.rar,清华大学出版社(2010年4月1日);...如果您想在程序设计之路上走得更远,请翻开《妙趣横生的算法(C语言实现)》,仔细研读吧,它将助您一臂之力。

    妙趣横生的算法

    妙趣横生的算法,c语言实现,常见算法技术结构面试题,实例丰富。

    妙趣横生的算法源码

    在“妙趣横生的算法源码”这个资源中,我们发现它主要关注的是C语言编程和算法的应用。C语言是一种强大的、低级的编程语言,广泛用于系统开发、嵌入式系统以及各种复杂的算法实现。它以其简洁的语法和高效的执行而...

    妙趣横生的算法源代码

    "妙趣横生的算法源代码"这个主题暗示我们这是一份包含各种有趣且实用的算法实现的代码集合。这些源代码可能涵盖排序、搜索、图论、动态规划等多个算法类别,旨在帮助开发者更好地理解和应用这些概念。 目录.txt很...

    妙趣横生的算法02

    妙趣横生的算法,通俗易懂,对常见的一些算法进行了讲解和分析,一共10讲

    妙趣横生的算法++C语言实现.pdf

    妙趣横生的算法++C语言实现.pdf 算法

    妙趣横生的算法pdf

    《妙趣横生的算法》是一本深入浅出地探讨算法的书籍,旨在通过生动有趣的方式,让读者理解和掌握各种核心算法。算法是计算机科学的灵魂,对于任何IT专业人士来说,理解并能熟练运用算法都是至关重要的。这本书的描述...

    妙趣横生的算法(C语言实现)源码

    "妙趣横生的算法(C语言实现)"这一主题揭示了通过C语言编写的独特而有趣的算法集合,旨在帮助程序员提升技能,同时增加对算法理解的乐趣。 首先,我们要明确算法的基本概念。算法是一系列精确的步骤,用于解决特定...

    妙趣横生的算法 C语言实现(清晰扫描版).pdf

    妙趣横生的算法 C语言实现 清晰扫描版 自己上网买的电子版 对算法初学者很有用

    妙趣横生的算法(C语言实现)全书源码

    《妙趣横生的算法(C语言实现)全书源码》是一本深入浅出介绍算法的书籍,其源码提供了丰富的C语言实现,对于学习和理解算法有着极高的价值。C语言作为底层编程语言,因其高效、简洁而被广泛用于系统级编程和算法...

    妙趣横生的算法C语言实现

    妙趣横生的算法C语言实现 很适合算法训练入门的一本书 pdf电子版 内容包含四个部分 1. 数据结构 2. 常用查找与排序方法 3.常用算法思想 4.编程实例详解

    清华妙趣横生的算法(C语言实现)第2版ppt完整稿

    《清华妙趣横生的算法(C语言实现)第2版》是一本深入浅出介绍算法的教材,其PPT完整稿提供了丰富的教学资源。在C语言的背景下,本书通过生动有趣的实例,让读者理解并掌握算法的核心概念与实现方法。下面我们将详细...

Global site tag (gtag.js) - Google Analytics