数制转换-栈的应用(C++实现)】的更多相关文章

本程序实现的是十进制与不同进制之间的的数据转换,利用的数据结构是栈,基本数学方法辗转相除法. conversion.h #include<stack> using namespace std; //将十进制的数据n转换成m进制的数据 stack<int> conversion(unsigned int n,unsigned int m) { stack<int> s; while(n) { s.push(n%m); n = n/m; } return s; } 源.cp…
java实现链栈在前面有所介绍:http://www.cnblogs.com/lixiaolun/p/4644141.html 将前面java实现链栈的代码稍作修改: package linkedstack; public class LinkStack { private Element base; private Element top; class Element { public Object data; public Element next; } /** * 初始化栈 * */ pu…
十进制与八进制的转换(栈和队列) Description 对于输入的任意一个非负十进制整数,利用栈打印输出与其等值的八进制数. Input 111 Output 157 Sample Input 148 Sample Output 224 思想很简单,n除8取余,利用栈先进后出的特点成功实现10进制到8进制的转换 代码: #include <iostream> #include<stack> using namespace std; int main() { stack<in…
数制转换有两种题型,一般一题,分值1.5分. 题型一:R进制转十进制 解法就是:按权展开,但要注意各个位的权,最低位(最右边)的权是0次方,权值为1. 纯整数的情况: (11010110)2 = 1×27 + 1×26 + 0×25 + 1×24 + 0×23 + 1×22 + 1×21 + 0×20  =  (214)10 (2365)8 = 2×83 + 3×82 + 6×81 + 5×80 =  (1269)10 (4BF)16 = 4×162 + B×161 + F×160 =  (12…
例24   数制转换 题目描述 请你编一程序实现两种不同进制之间的数据转换. 输入格式 共三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10则用大写字母A-F表示数码10-15,并且该n进制数对应的十进制的值不超过1000000000,第三行也是一个正整数,表示转换之后的数的进制m(2≤m≤16). 输出格式 一个正整数,表示转换之后的m进制数. 输入样例 16 FF 2 输出样例 11111111 (1)编程思路. 十进制整数转换为R进制整数的…
一.数制转换 目标: 1)请将下列数字转换为十进制数: (110010011111)2 .(10110101110)2 2)请将下列十进制数转换为二进制: 156.2608.1043 方案: 使用按权展开法将二进制数转换为十进制数,使用短除法除2取余计算十进制数转换为二进制数. 步骤: 步骤一:二进制转十进制 1)二进制数110010011111,转为十进制的结果是3231,转换过程如下: (1100 1001 1111)2     = 1x211+1x210+0x29+0x28+1x27+0x…
在苦于昨晚最后一个数制转换题,他的转换结果必须是整形数,纳尼?转换完放数组里又要变成整形数.这是什么操作,而且如果是16进制,用字母A,B-表示,在进行运算时都难以计算. 突发奇想,当十进制成立的时候二进制一定成立,经验证,2进制成立10进制一定成立,也就是验证十进制就可以.经51nod的测评,仅仅跑对了一组数据.心态爆炸. 那既然计算机能够10进制转化为2进制计算.计算机是否有一种编译机制可以调用. 查找发现以下函数: 1.itoa是广泛应用的非标准C语言扩展函数.由于它不是标准C语言函数,所…
[九度OJ]题目1118:数制转换 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1118 题目描述: 求任意两个不同进制非负整数的转换(2进制-16进制),所给整数在long所能表达的范围之内. 不同进制的表示符号为(0,1,-,9,a,b,-,f)或者(0,1,-,9,A,B,-,F). 输入: 输入只有一行,包含三个整数a,n,b.a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数.a,b是十进制…
题目描述 请你编一程序实现两种不同进制之间的数据转换. 输入输出格式 输入格式: 共三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10n>10则用大写字母A−F表示数码10−15,并且该nn进制数对应的十进制的值不超过1000000000,第三行也是一个正整数,表示转换之后的数的进制m(2≤m≤16). 输出格式: 一个正整数,表示转换之后的mm进制数. 输入输出样例 输入样例#1: 复制 16 FF 2 输出样例#1: 复制 11111111…
进位计数制的基本概念 ​ 将数字符号按顺序排列成数位,并遵照某种由低到高的进位方式计数表示数值的方法,称作为计数制. 十进制 十进制计数制由0.1.2.3.4.5.6.7.8.9共10个数字符号组成.相同数字符号在不同的位数上表示不同的数值,每个数位计满十就向高位进一,即"逢十进一". 八进制 八进制计数制由0.1.2.3.4.5.6.7共8个数字符号组成.相同数字符号在不同的数位上表示不同的数值,每个数位计满八位就像高位进一,即"逢八进一". 二进制 二进制计数制…
题目地址:http://ac.jobdu.com/problem.php?pid=1118 题目描述: 求任意两个不同进制非负整数的转换(2进制-16进制),所给整数在long所能表达的范围之内.     不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F). 输入: 输入只有一行,包含三个整数a,n,b.a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数.a,b是十进制整数,2 =< a,b <= 16. 数据可能存在…
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3873 解决:1494 题目描述: 求任意两个不同进制非负整数的转换(2进制-16进制),所给整数在long所能表达的范围之内.     不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F). 输入: 输入只有一行,包含三个整数a,n,b.a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数.a,b是十进制整数,2 =< a,b <= 16. 数据可能存在包含前导…
对于进制转换,c/c++要用到辗转相除,不仅浪费时间,还造成代码量繁多,而任意之间的进制转换还需要以十进制为跳板, 先将其他进制的数字转换为十进制,再将十进制转换为其他进制,而java中自带进制转换的函数与方法,可以直接导包调用,非常方便,下面就是十 进制(非大数,是普通整数)转换其他进制的代码,注意转换后是字符串: package Main; import java.util.Scanner; public class Main { public static void main(String…
public static class ConvertExtensions { #region 数据类型转换扩展方法 /// <summary> /// object 转换成string 包括为空的情况 /// </summary> /// <param name="obj"></param> /// <returns>返回值不含空格</returns> public static string ToStringE…
AVR 单片机有加法和减法指令,可以直接调用相关指令来达到目的. 这里列出了16位加法.16位带立即数加法. 16位减法.16位带立即数减法. 16位比较.16位带立即数比较程序和16位取补程序. add16: add       r16,r18 ;  r17:r16+r19:r18→r17:r16 adc       r17,r19 addi16: subi  r16,low(-addi2) ; r17:r16+addi2→r17:r16 sbci  r17,high(-addi2)    ;…
1.栈的定义 栈是一种和列表类似的数据结构,可以用它来解决很多的编程问题,栈是一种高效的数据结构,因为数据只能在栈的顶端添加或者删除,所以这样的操作很快而且容易实现. 栈是一种特殊的列表,站内的元素只能拖过列表的一端进行访问,这一端陈伟栈顶.一叠盘子是最常见的栈结构,只能从顶部取盘子,洗好的盘子也只能放在顶端.栈被称为后入先出的数据结构. 由于栈具有后入先出的特点,所以任何不在栈顶的元素都无法访问.为了得到栈底的元素,必须拿掉上面的元素. 对栈的操作有将一个元素压入栈和将一个元素弹出栈.把元素压…
顺序栈SqStack 基本操作 Status InitStack()//构造一个空栈S Status DestroyStack()//销毁栈S,S不再存在 Status ClearStack()//把S置为空栈 Status StackEmpty()//若S为空栈,则返回true,否则返回false int StackLength()//返回S的元素个数,即栈的长度 Status GetTop(SElemType &e)//若栈不空,则用e返回S的栈顶元素,并返回OK,否则返回ERROR Sta…
e.g.1 数制转换 十进制数N和其它d进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个简单算法基于下列原理. 假设编写一个程序:对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数.由于上述计算过程是从低位到高位顺序产生八进制数的各个数位,而打印输出,一般来说应从高位到低位进行,恰好和计算过程相反.因此,若将计算过程中得到的八进制数的各为顺序进栈,则按出栈序列打印输出的即为与输入对应的八进制数. e.g.2 括号匹配 假设表达式中运行包含两种括号:圆括号和方括号,其嵌套…
有一些问题特别适合用栈来解决.本节就介绍几个这样的例子.   1) 数制间的相互转换 可以利用栈将一个数字从一种数制转换成另一种数制.假设想将数字n 转换为以b 为基数的数字,实现转换的算法如下. 使用栈,在JavaScript 中实现该算法就是小菜一碟.下面就是该函数的定义,可以将数字转化为二至九进制的数字: //============================使用Stack类==================================== /** * 1.数制间的相互转换 *…
栈的实现 实现一个栈,当务之急是决定存储数据的底层数据结构.这里采用的是数组. 我们的实现以定义 Stack 类的构造函数开始: function Stack() { this.dataStore = []; this.top = 0; this.push = push; this.pop = pop; this.peek = peek; } 我们用数组 dataStore 保存栈内元素,构造函数将其初始化为一个空数组.变量 top 记录 栈顶位置,被构造函数初始化为 0,表示栈顶对应数组的起始…
1. 栈 1.1 分类 顺序栈:顺序线性表实现 链式栈:单向链表存储堆栈 1.2栈的应用 1)数制转换 import java.util.Scanner; import java.util.Stack; public class Tran{ public static void main(String arg[]){ Scanner y=new Scanner(System.in); System.out.println("请输入十进制数"); int b=y.nextInt(); T…
栈,线性表的一种特殊的存储结构.与学习过的线性表的不同之处在于栈只能从表的固定一端对数据进行插入和删除操作,另一端是封死的. 图1 栈结构示意图 由于栈只有一边开口存取数据,称开口的那一端为“栈顶”,封死的那一端为“栈底”(类似于盛水的木桶,从哪进去的最后还得从哪出来). 栈的“先进后出”原则 使用栈存储数据元素,对数据元素的“存”和“取”有严格的规定:数据按一定的顺序存储到栈中,当需要调取栈中某数据元素时,需要将在该数据元素之后进栈的先出栈,该数据元素才能从栈中提取出来. 如图 1 ,栈中存放…
十进制转二进制: //十进制转二进制 #include<iostream> using namespace std; void printbinary(const unsigned int val) { for(int i = 16; i >= 0; i--) { if(val & (1 << i)) cout << "1"; else cout << "0"; } } int main() { prin…
转换使表达式可以当做一个明确的类型来加以处理.转换使得所给定类型的表达式以不同类型来处理,或使得没有某个类型的表达式获得该类型.转换可以是显式或隐式的,而这决定了是否需要显式地强制转换.比方说,从类型 int 向类型 long 的转换是隐式的,所以 int 类型表达式可以隐式地当做 long 的来处理.反过来转换,从类型 long 转换为 int 是显式的,需要显式的强制转换(explicit cast). int a = 123; long b = a; // 从 int 到 long 隐式转…
二进制在C#中无法直接表示,我们一般用0和1的字符串来表示一个数的二进制形式.比如4的二进制为"100".下面介绍C#里面用于进制转换的方法. 十进制转换为二进制(int-->string) System.Convert.ToString(d, 2);// d为int类型 以4为例,输出为100 十六进制转换为二进制(int-->string) System.Convert.ToString(d, 2);// d为int类型 以0X14为例,输出为10100 上面ToStr…
(最开始源于牛客网上的一道编程题 : [编程题] 数制转换) 将X进制转为int十进制的功能函数:(乘X次方各位数的加和法) # 将X进制转为int十进制的功能函数:(乘X次方各位数的加和法) def XToInt(strNum,X): sum = 0 strNum = strNum.lstrip(") #去掉开始的0(前导零) length = len(strNum) for i in range(length): sum += ABCToNum(strNum[i])*(X**(length-…
*此代码可直接复制到HDevelop中运行 a:= 3.456 *取整.取最近的整数 int_a := int(a) //取整数部分,结果是3 round_a := round(a) //将输入元组转换为最接近的整数元组,结果是3 *四舍五入,结果是字符串 g0 := a$'.0f' //保留0位,结果是'3' g1 := a$'.1f' //保留1位,结果是'3.5' g2 := a$'.2f' //保留2位,结果是'3.46' g3 := a$'.3f' //保留3位,结果是'3.456'…
//for循环嵌套练习——打一个九九乘法表 ; i <= ; i++) { ; j <= i; j++) { Console.Write(j + "×" + i + "=" + i * j + "\t"); } Console.WriteLine(); } //for循环嵌套练习——输入一个正整数,打印一个n*n的矩阵,再打4个三角形,打一个菱形 //n*n的矩阵 Console.Write("请输入一个正整数:"…
计算机网络 计算机网络概述 什么是计算机网络 硬件方面:通过线缆将网络设备和计算机连接起来 软件方面:操作系统.应用软件.应用程序通过通信线路互连 实现资源共享.信息传递 功能 数据通信/资源共享/增加可靠性/提高系统处理能力 产生和发展 第一代计算机网络的诞生 1946年产生第一台数字计算机 1954年收发器终端的产生 60年代初,由多重线路控制器参与组成的网络,被称为第一代计算机网络. 第二代计算机网络的诞生 1964年,baran提出存储转发概念 1966年,David提出分组概念 196…
(一).数制 计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径.节省设备等优点,为了便于描述,又常用八.十六进制作为二进制的缩写.一般计数都采用进位计数,其特点是: (1)逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数. (2)采用位置表示法,处在不同位置的数字所代表的值不同,而在固定位置上单位数字表示的值是确定的,这个固定位上的值称为权. 在计算机中:D7 D6 D5 D4 D3 D2 D1 D0 只有两种0和1 8 4 2 1二).数制转…