实验三:十进制转换成二进制数(顺序栈)
十进制整数转换为二进制整具体算法是:用2去除十进制整数,得到一个商和余数,再用2去除商,得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位依次排列起来。
整个算法比较简单,但输出结果得逆序输出。栈具有先进后出的特点,因此我采用栈来存储余数,实现逆序输出。
源代码:
#include<iostream>
using namespace std;
const int StackSize = 1024;template <class T>
class SeqStack
{
public:SeqStack() { top = -1; }void Push(T x);T Pop();T GetTop();int isEmpty();
private:T data[StackSize]; //需要存放的栈元素的数组int top; //栈顶指针
};template<class T>
void SeqStack<T>::Push(T x) //入栈操作
{if (top == StackSize - 1)throw "上溢";top++;data[top] = x;
}template<class T>
T SeqStack<T>::Pop() //出栈操作
{if (top == -1)throw "下溢";int x = data[top];top--;return x;
}template<class T>
T SeqStack<T>::GetTop()
{if (top != -1)return data[top];elsereturn NULL;
}template<class T>
int SeqStack<T>::isEmpty()
{if (top == -1)return 0;elsereturn 1;
}int main()
{ int num;SeqStack<int>demo; //创建存储余数的栈cout << "请输入一个十进制的数字:";cin >> num;while (num != 0){demo.Push(num % 2);num /= 2;}cout << "该数的二进制形式为:";while (demo.isEmpty()){cout << demo.Pop();}cout << endl;return 0;
}
实验截图:
输入输出:
校验:
实验总结与个人心得:
本次实验涉及的算法相对简单,栈结构的实现代码也很大程度上借鉴课本,实验过程顺利,并没有遇到过多错误。
实验三:十进制转换成二进制数(顺序栈)相关推荐
- 十进制转换成二进制 (栈)
十进制转换成二进制 (栈) 首先,转化的思路是 辗转取余法.比如说n = 5,先取模(5%2)获得1,然后取余并将其赋值给本身,得到n = 2:再取模得到0,取余之后n = 1:对1取模(1%2)得到 ...
- java十进制转换成二进制数
1.十进制转成二进制String s = Integer.toBinaryString(n) //将十进制数转成字符串,例如n=5 ,s = "101"2.将字符串转成整形int ...
- C语言算法之将十进制数转换成二进制数
导语:在C语言中没有将其他进制的数直接输出为二进制数的工具或方法,输出为八进制数可以用%o,输出为十六进制可以用%x,输出为二进制就要我们自行解决了.下面给大家讲述一下如何编程实现将十进制数转换成二进 ...
- 编写一个C程序,实现以下功能:编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。在main函数中输入整数n,调用函数,输出它的二进制
题目要求: 编写一个C程序,实现以下功能: //编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101. //在main函数中输入整数n,调用函数 ...
- java实现十进制数转换成二进制数
十进制数转换成二进制 import java.util.Scanner; public class Textwile { public static void main(String[] args) ...
- c++第二周任务一*(1‐1)编写递归函数将十进制数转换成二进制数输出。
/任务一 /*(1‐1)编写递归函数将十进制数转换成二进制数输出. * 算法说明: */ #include <iostream> using namespace std; void d2b ...
- 将十进制数转换成二进制数(C语言)
C语言--将十进制数转换成二进制数 方法:除 2 取余,逆序排列 原理:用 2 整除十进制整数,可以得到一个商和余数:再用 2 去除商,又会得到一个商和余数,如此进行,直到商为小于 1 时为止,然后把 ...
- 【数制转换】-十进制数转换成二进制数
第一部分:整数转换 逐次除2取余法 用2逐次去除待转换的十进制整数,直至商为0时停止:每次所得的余数即为二进制数码,先得到的余数在低位,后得到的余数排在高位. 例子1: 将83转换成二进制数(逐次 ...
- c语言编写一个程序,将一个十进制数转换为二进制数,c语言编写一个程序,将十进制整数n 转换成二进制数...
#include int transfer(int x) { int p=1,y=0,yushu; while(1) { yushu=x%2; x/=2; y+=yushu*p; p*=10; if( ...
最新文章
- 第一次作业+105032014116
- 在C#中如何在客户端接收信件
- 中用BBP公式计算_【真课堂】7年级信息技术:数据计算
- wxWidgets:C++ 异常
- WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析
- 格式说明_ISO11784/85 FDX-B动物芯片格式写码说明
- java getselecteditem_java – 将getSelectedItem()从JComboBox转换为int或任何其他东西
- qt 对话框关闭以及自动释放内存
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比...
- ln -s命令 linux_浅谈linux中ln命令,附带案例
- [perl]字符串转拼音首字母(支持多音字)
- Debian - NFS搭建 + 测试
- 润乾报表连接mysql_润乾报表与DERBY数据库的创建连接详解
- Linux开机启动流程详细步骤是什么?
- 数字图像处理学习 matable
- 配置React-Native开发工具——WebStorm下载、激活与配置
- ZZULIOJ1026
- webservice 框架比较
- IDEA安装及破解永久版教程————鹏鹏
- input 起止时间_几种常用的控件(下拉框 可选框 起止日期 在HTML页面直接读取当前时间)...
热门文章
- 阿里达摩院发布的2020十大科技趋势
- aau和fairy ape模拟精灵的关系
- python 双精度浮点数_python怎么输出浮点数?
- 手机网页开发简单总结
- AngularJS 核心概览
- [HTC Vive + Unity开发]——VRTK的研究——用手柄旋转物体(使用VRTK_Knob脚本)
- Maven项目报错:“Plugin execution not covered by lifecycle configuration”解决过程
- Android开发冷启动解决方案 实现秒开
- oppo37位置服务器,oppoa37如何切换存储位置
- 判断请假时间去除周末及节假日