十进制转化为二进制,采用的是“除以2求余数”的算法,就是将整数不断除以2,每次得到的余数就是由低到高的二进制

这个“除以2”的过程得到的余数是从低到高的次序,而输出则是从高到低,所以需要一个栈来反转次序。

十进制转化为二进制代码实现:

class Stack():"""定义一个栈"""def __init__(self):self.items = []def isEmpty(self):return self.items() == []def pop(self):return self.items.pop()def push(self, item):return self.items.append(item)def peek(self):return self.items[len(self.items)-1]def size(self):return len(self.items)def divideBy2(decNumber):remstack = Stack()while decNumber > 0:rem = decNumber % 2          #求余数remstack.push(rem)decNumber = decNumber // 2   # 整数除binString = ""while not remstack.isEmpty():binString = binString + remstack.pop()return binString

如果是转化为八进制或十六进制呢,简单修改一下就可以了。

class Stack():"""定义一个栈"""def __init__(self):self.items = []def isEmpty(self):return self.items() == []def pop(self):return self.items.pop()def push(self, item):return self.items.append(item)def peek(self):return self.items[len(self.items)-1]def size(self):return len(self.items)def divideBy(decNumber, base):digits = '0123456789ABCDEF'remstack = Stack()while decNumber > 0:rem = decNumber % base          #求余数remstack.push(rem)decNumber = decNumber // base   # 整数除binString = ""while not remstack.isEmpty():binString = binString + digits[remstack.pop()]return binStringprint(divideBy(35, 8))

数据结构6:栈的应用(十进制转化为二进制)相关推荐

  1. 栈的输出_栈和队列--十进制转化为二进制

    需求:编写程序使十进制转换成为二进制 分析:十进制转换二进制.如图,只需要不断除以2,然后将余数逆置即可,我们可以将余数依次输入到栈中,利用栈先进后出的特性,再将栈中元素输出即可得到二进制序列 int ...

  2. 把十进制转化为二进制的一种方法

    把十进制转化为二进制的一种方法: void pb(int n){if(n != 0){pb(n/2);putchar('0'+n%2);} }int main(void){for(int i=10; ...

  3. python十进制转化为二进制

    python十进制转化为二进制 实例:给定一个非负十进制数n,如何将其转换成为一个二进制数? 输入:123 输出:1111011 输入:1363 输出:10101010011 输入:12 输出:110 ...

  4. 十进制转化成二进制(C++)

    十进制转化为二进制的方法,在数学上是除二取余法,如下图(自己在画图上画的,有点子丑,,,): 我这是以36为例,用36不断的去除二取余,左边就是余数,最后从下至上把余数连起来,就是我们要得到的结果,就 ...

  5. C语言——十进制转化为二进制

    十进制转化为二进制:将十进制一直除以二,然后用数组储存余数,并取商,如此循环直到十进制数小于零. #include <stdio.h> void main() {  short int n ...

  6. java十进制转化为二进制

    十进制转化为二进制的方法 Integer.toBinaryString(int i) 注意:转化的二进制以字符串的形式返回 查看一个数的二进制上某一位是0还是1的方法: 1.屏蔽法 num & ...

  7. c语言实例--十进制转化为二进制

    问题:实现十进制转化为二进制的代码. 思路先行: 第一步:十进制转化为二进制的过程中,就是每次除2取余,并存放在数组中. 第二步:输入的数字在0-32767之间. 第三步:for循环(从0到14位,最 ...

  8. 十进制转化为二进制与十六进制显示(汇编程序)

    stacks segment stack dw 200h dup(0);不太明白要200h这么大 stacks ends data segment in_buf db 6;定义输入字符串最大长度 in ...

  9. C语言基础代码合集 | 十进制转化为二进制

    1. 九九乘法表 #include <stdio.h> int main(void) {int a,b;for (a=1;a<=9;a++)//列的循环{for(b=a;b<= ...

最新文章

  1. Python 判断类型
  2. Python学习的十个阶段,学完大成,对应一下看看你自己在哪个阶段
  3. UML类关系(依赖,关联,聚合,组合,泛化,实现)
  4. HDFS EditsLog和FsImage日志机制
  5. 【渝粤教育】国家开放大学2018年春季 0233-21T学前儿童语言教育 参考试题
  6. hihoCoder #1758 加减
  7. C++ STL list删除和修改
  8. 信息学奥赛一本通 1131:基因相关性 | OpenJudge NOI 1.7 03
  9. java类与接口练习
  10. JVM GC日志说明
  11. C#之多态与继承汽车类
  12. 【恋上数据结构】贪心(最优装载、零钱兑换、0-1背包)、分治(最大连续子序列和、大数乘法)
  13. [Node.js]001.安装与环境配置
  14. The requested PHP extension ext-redis * is missing from your system. Install or enable PHP's redis e
  15. (机器人学导论--运动学)(三)DH表达法顺向运动学
  16. 费曼:微积分是上帝的语言 | 书摘
  17. 遗传+粒子群 求解多配送中心车辆调度问题(python)
  18. network secruity studay day2
  19. 【java毕业设计】基于java+SSH+jsp的网上体育商城设计与实现(毕业论文+程序源码)——网上体育商城
  20. 什么专业要学计算机思维导论,大学计算机:计算思维导论CAP

热门文章

  1. 手持天馈线测试仪 哪一款性价比最高
  2. 【web前端期末大作业】基于html+css+javascript+jquery技术设计的音乐网站(44页)
  3. el-table闪动问题
  4. python正则表达式入门教程括号及字符
  5. java中的LinkedList(链表)与ArrayList(动态数组):(2)尝试简单实现LinkedList
  6. html收藏页面代码,我的收藏页面.html
  7. OSChina 周六乱弹 —— 为什么中国人到了非洲都成了非洲粉
  8. 【佳学基因人工智能】在ANACOND3下如何安装NUMPY
  9. 一年规划: 服务器后端+分布式+微服务+具有产品思维,20210504
  10. Eclipse使用Maven创建Web时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap