python中stack在实际中的简单应用之进制转换
计算机的世界是二进制的,而人类的世界是十进制的,当数学公式用计算机表达时,经常
要转换。这就用到了进制的转换。
首先,我们先了解一下二进制和十进制的发展历史:
二进制:
现代的二进制首先由大数学家莱布尼兹设计的。
1854年,英国数学家乔治·布尔发表了一篇里程碑式的论文,其中详细介绍了一种代数化的逻辑系统,
后人称之为布尔代数。他提出的逻辑演算在后来的电子电路设计中起基础性作用。
1937年,克劳德·香农在麻省理工大学完成了其电气工程硕士学位论文,用继电器和开关实现了布尔
代数和二进制算术运算。论文题为《继电器与开关电路的符号分析》(A Symbolic Analysis of Relay a
nd Switching Circuits)[6],其中香农的理论奠定了数字电路的理论基础。香农凭这篇论文于1940年被授
予美国阿尔弗雷德·诺贝尔协会美国工程师奖。哈佛大学的哈沃德·加德纳称,香农的硕士论文“可能是本
世纪最重要、最著名的硕士学位论文”。
1937年11月,任职于贝尔实验室的乔治·斯蒂比兹[7]发明了用继电器表示二进制的装置。它是第一台
二进制电子计算机。
可以得出这样的结论:由于计算机的基石就是使用二进制设计的,所以,理所当然二进制就成了计算机
的“”官方语言”。
这里,python的实现代码如下:
import timeit from timeit import Timer class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self,item):
self.items.append(item)
def pop(self):
return self.items.pop() def peek(self):
return self.items[len(self.items) - 1]
def size(self):
return len(self.items) def divide_by_2(dec_number):
rem_stack = Stack() while dec_number > 0:
rem = dec_number % 2
rem_stack.push(rem)
dec_number = dec_number // 2 bin_string = ""
while not rem_stack.is_empty():
bin_string = bin_string + str(rem_stack.pop()) return bin_string print("Test binary value(42):")
print(divide_by_2(42))
print(divide_by_2(42)) def base_converter(dec_number,base):
digits = "0123456789ABCDEF" rem_stack = Stack() while dec_number > 0:
rem = dec_number % base
rem_stack.push(rem)
dec_number = dec_number // base new_string = ""
while not rem_stack.is_empty():
new_string = new_string + digits[rem_stack.pop()] return new_string print("Test all converter 25:")
print(base_converter(25,2))
print(base_converter(25,4))
print(base_converter(25,8))
print(base_converter(25,16))
运算结果:
Test binary value(42):
101010
101010
Test all converter 25:
11001
121
31
19
python中stack在实际中的简单应用之进制转换的更多相关文章
- ( 转)Sqlserver中tinyint, smallint, int, bigint的区别 及 10进制转换16进制的方法
一.类型比较 bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据,存储大小为 8 个字节.一个字节就是8位,那么b ...
- Python中数字之间的进制转换
Python中的数据转换 在python中可以通过内置方法进行相应的进制转换,但需记得转化成非十进制时,都会将数字转化成字符串 转化成二进制 a = 10 #声明数字,默认十进制 b = bin(a) ...
- Python中进制转换函数的使用
Python中进制转换函数的使用 关于Python中几个进制转换的函数使用方法,做一个简单的使用方法的介绍,我们常用的进制转换函数常用的就是int()(其他进制转换到十进制).bin()(十进制转换到 ...
- python中进制转换
使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...
- python中的2、8、16、10进制之间的转换
python除法的坑 众所周知,python除法有两个运算符,一个是/,还有一个是//,那么这两个有什么不同之处呢? 从图片可以得知,使用//返回一个float类型,而使用/返回一个int类型.我们总 ...
- jstack:将Process Explorer中看到的进程ID做16进制转换,到ThreadDump中加上0x 前缀即能找到对应线程(转)
原文链接:http://www.iteye.com/topic/1133941 症状: 使用Eclipse win 64位版本,indigo及kepler都重现了,使用tomcat 6.0.39,jd ...
- C++中的各种进制转换函数汇总
C++中的各种进制转换函数汇总 1.在C中,按指定进制格式输出如下: #include <iostream> #include <cstdio> using namespace ...
- java中Integer包装类的具体解说(java二进制操作,全部进制转换)
程序猿都非常懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往须要操作Integer,或者各种进制的转换等等.我今天就为大家具体解说一下Integer的使用吧.看代码: ...
- C++中进制转换问题
一直在刷题的时候,都会遇到一个坑,就是进制转换的问题.而每一次都傻乎乎的自己去实现一个.所以算是对以前的坑的一个总结. itoa 函数 itoa是广泛应用的非标准C语言和C++语言扩展函数.由于它不是 ...
随机推荐
- 修改CKplayer.js 源码解决移动端浏览器全屏不能限制快进的问题
原文地址:https://www.cnblogs.com/jying/p/9642445.html,转载请说明出处. 最近项目需要播放视频且限制未观看部分的快进功能,找了两款js插件ckplayer和 ...
- 安装好ubuntu双系统启动时卡死解决办法
问题描述:在安装完ubuntu双系统后,第一次启动ubuntu系统时,卡死在启动界面(或者黑屏),这大概都是由于显卡驱动的原因,具体不在这里阐述,通过以下方法能成功解决,据我个人经验,这可能是诸多方法 ...
- EasyUI datagrid单元格文本超出显示省略号,鼠标移动到单元格显示文本
nowrap : true; 是前提 $('#×××').datagrid({ nowrap : true,//设置为true,当数据长度超出列宽时将会自动截取 }); 省略号样式: <sty ...
- nignx知识点总结
https://segmentfault.com/a/1190000013781162
- Android,重新出发!
接触Android差不多一年,工作也有快半年的时间了. 现在回头看看自己写的代码,虽然功能可以实现,但是还是有很多不足的地方. 比如代码结构,一个类中的代码过多,知道这样做不好,但是不知道怎么把这些 ...
- 带标签的循环语句、switch
今天继续更新,控制流程的剩余部分内容,带标签的循环语句中的continue/break 的使用方法,以及switch关键字的使用方法.例1:带标签的continue/break.package com ...
- 32.Mysql Cluster
32.Mysql Cluster Cluster是一组节点的组合.节点分为数据节点.SQL节点.管理节点.节点组合在一起可以为应用提供高可用.高性能.可缩放的Cluster数据管理.数据节点使用NDB ...
- MySQL优化(三) 表的设计
1.什么样的表才符合3范式(3 NF)? 表的范式,是首先符合1范式,才能满足2范式,进一步才能满足3范式:(现在最高级别是6范式) 第一范式:1NF 是对属性的原子性约束,要求表的属性(列)具有原子 ...
- 利用springloaded进行java jar&class的动态替换
之前已经写过一篇关于class的动态替换博客,今天我们来介绍一下如何用springloaded进行jar&class的动态替换. 首先说一下实验过程,结合了目前我正在做的项目,这个项目是一个前 ...
- python 03 字符串详解
1.制表符 \t str.expandtabs(20) 可相当于表格 2.def isalpha(self) 判断是否值包含字母(汉字也为真),不包含数字 3.def isdecimal(se ...