精华内容
下载资源
问答
  • 用栈实现进制转换

    2017-10-04 17:03:44
    该资源利用的知识实现进制转换,包含的建立,清空,压栈,出栈等基本操作,以及辗转相除法求余数
  • Problem A: 使用栈实现进制转换Time Limit:1 SecMemory Limit:128 MBSubmit:35Solved:19[Submit][Status][Web Board]Description使用栈将一个很长(>30)的十进制数转换为二进制数Input若干个很长的十进制数每行一...

    Problem A: 使用栈实现进制转换

    Time Limit:1 Sec

    Memory Limit:128 MB

    Submit:35

    Solved:19

    [

    Submit][

    Status][

    Web Board]

    Description

    使用栈将一个很长(>30)的十进制数转换为二进制数

    Input

    若干个很长的十进制数

    每行一个

    Output

    转换为二进制,每行输出一个

    Sample Input

    123456789012345678901234567890

    753951684269875454652589568545854758545824

    Sample Output

    1100011101110100100001111111101101100001101110011111000001110111001001110001111110000101011010010

    10001010011110101010001101001000100100100000101001011010001010101001000100111101011001110001000111110010001000101101111110110110100110100000

    HINT

    import java.math.BigInteger;

    import java.util.Scanner;

    public class Main {

    /**

    * @param args

    */

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    BigInteger a;

    Scanner cin=new Scanner(System.in);

    while (cin.hasNext()) {

    a=cin.nextBigInteger();

    System.out.println(a.toString(2));

    }

    }

    }

    展开全文
  • 进制转换栈实现

    2017-07-08 15:12:04
    利用栈实现进制转换,支持16进制以下进制(2-10、16),更改相应的参数还可扩展其他进制转换,还可以通过更改宏定义来扩宽进制转换的数据范围。用户通过输入想要转换的进制和待转换的数字
  • 使用栈实现进制转换

    千次阅读 2018-04-13 11:52:43
    进制转换原理 上图是十进制150转换为二进制的实例,实现方式是将150除以2取余,将余数记下,然后商继续除以2取余,重复该操作,直到商为0为止。 然后将得到的所有余数倒着连起来,就是二进制的值。 十进制转为...

    进制转换原理

    这里写图片描述

    上图是十进制150转换为二进制的实例,实现方式是将150除以2取余,将余数记下,然后商继续除以2取余,重复该操作,直到商为0为止。

    然后将得到的所有余数倒着连起来,就是二进制的值。

    十进制转为八进制或十六进制都是一样的原理,只要将除数改为8或16即可。

    实现

    栈的实现请参考:https://blog.csdn.net/u010837612/article/details/79914935

    #include <iostream>
    #include <stdlib.h>
    #include "MyStack.h"
    
    using namespace std;
    
    #define HEX      16  //16进制
    #define OCTONARY 8   //8进制
    #define BINARY   2   //2进制
    
    int main(void) {
    
        MyStack<char> *stack = new MyStack<char>(20);
    
        char nums[] = "0123456789ABCDEF"; 
    
        int N = 1234;
        int mod;
    
        int sys = HEX;
    
        while (N != 0) {
    
            mod = N % sys;
            N = N / sys;
            stack->push(nums[mod]);
    
        }
    
        cout << sys << "进制结果为:";
    
        while (!stack->isEmpty()) {
            char ele;
            stack->pop(ele);
            cout << ele;
        }
        cout << endl;
    
        delete stack;
        stack = NULL;
    
        system("pause");
        return 0;
    
    }
    
    展开全文
  • 栈实现进制转换

    2013-10-29 16:44:21
    C++语言 利用操作实现进制转换成任意进制。
  • 《C语言 用栈实现进制转换》由会员分享,可在线阅读,更多相关《C语言 用栈实现进制转换(3页珍藏版)》请在人人文库网上搜索。1、C语言 用栈实现进制转换#include#include#include#include#define S_SIZE 100 /栈所占...

    《C语言 用栈实现进制转换》由会员分享,可在线阅读,更多相关《C语言 用栈实现进制转换(3页珍藏版)》请在人人文库网上搜索。

    1、C语言 用栈实现进制转换#include#include#include#include#define S_SIZE 100 /栈所占空间的大小#define STACKINCREAMENT 10 /扩充空间时一次扩充十个字节struct SqStackint *base; /栈底int *top; /栈顶int stacksize;/栈当前的存储空间*S;/主函数开始void main()/子函数声明void InitStack(S);/初始化空栈int StackEmpty(SqStack S);/判栈空void GetTop(SqStack S,int &e);/获得栈顶元素void p。

    2、ush(SqStack &S,int e);/进栈void pop(SqStack &S,int &e);/出栈void convert(SqStack &5,int N,int n);/十进制转N进制int i,num;unsigned n,N;/要转换的进制数及要转换的数SqStack s;InitStack(s);/初始化空栈printf(输入要转换的十进制数和要转换为的进制数:n);scanf(%d,%d,&N,&n);printf(%d转换为%d进制后为:n,N,n);convert(s,N,n);void InitStack(SqStack &S)S.base = (int *)m。

    3、alloc(S_SIZE*sizeof(int);S.stacksize=S_Size;S.top=S.base;/初始化空栈int StackEmpty(SqStack S)if(S.base=S.top)return 1;elsereturn 0;void GetTop(Stack S,int &e)/获得栈顶元素e = *(S.top-1);void push(SqStack &5,int e)/进栈if(S.top - S.base = S.stacksize)S.base = (int *)realloc(S.base,(S.stacksize+STACKINCREAMENT)*si。

    4、zeof(int);S.top = S.base += S.stacksize;S.stacksize += STACKINCREAMENT;*(S.top)=e;S.top+;void pop(SqStack &S,int &e)/出栈if(S.base != S.top)S.top-;e=*S.top;void convert(SqStack &S,int N,int n)InitStack(S);dopush(S,N&n);N = N/n;while(N != 0);int i,e;while(!StackEmpty(S)pop(S,e);if(e 9)/十六进制时输出字母e = e + 55;printf(%c,e);elseprintf(%d,e);printf(n。

    展开全文
  • 进制转换问题建立顺序或链栈,编写程序实现十进制数到二进制数的转换。输入输入只有一行,就是十进制整数。输出转换后的二进制数。样例输入10样例输出1010十进制怎么转为二进制?十进制转二进制怎么转?十进制整数...

    进制转换问题

    建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。

    输入

    输入只有一行,就是十进制整数。

    输出

    转换后的二进制数。

    样例输入

    10

    样例输出

    1010

    十进制怎么转为二进制?十进制转二进制怎么转?

    十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来

    利用栈的后进先出性质写一个10到2进制转换的小程序,实现顺序栈,代码如下:

    #includetypedef struct Stack

    {

    int data[100];

    int top;

    }SqStack;

    //建立顺序栈

    void Init(SqStack *&s)

    {

    s=(SqStack *)malloc(sizeof(SqStack));

    s->top=-1;

    }

    //栈的初始化

    bool En(SqStack *&s,int e)

    {

    if(s->top==99)

    return false;

    s->top++;

    s->data[s->top]=e;

    return true;

    }

    //进栈

    bool Pop(SqStack *&s)

    {

    if(s->top==-1)

    return false;

    s->top--;

    return true;

    }

    //出栈

    int main()

    {

    printf("十进制到二进制转换程序\n*******************\n");

    SqStack *s;

    Init(s);

    int n,m;

    printf("请输入一个十进制的整数\n");

    scanf("%d",&n);

    m=n;

    while(m!=0)

    {

    int e=m%2;

    En(s,e);

    m/=2;

    }

    printf("其转化为二进制的数为");

    while(s->top!=-1)

    {

    printf("%d",s->data[s->top]);

    Pop(s);

    }

    return 0;

    }

    e2508c8eb70fbf449acbfb33171eeccc.png

    展开全文
  • 利用栈实现进制转换

    2021-12-06 21:33:28
    利用栈实现进制转化
  • C语言-顺序栈实现进制转换为二进制-八进制-十六进制
  • 使用栈实现进制转换(代码易懂)

    千次阅读 2020-03-21 22:43:26
    使用栈实现进制转八进制: #include<iostream> #include<malloc.h> using namespace std; #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef struct{ int *base; int *top; int ...
  • 主要介绍了C语言用栈实现进制转换为二进制的方法,结合实例形式分析了C语言栈的定义及进制转换使用技巧,需要的朋友可以参考下
  • public class MyStack { private int[] array; private static int size; private static final int INITSIZE = 100; //初始化 public MyStack(){ array = new int[INITSIZE]; } //扩容 private ...
  • C语言栈实现进制转换

    2013-10-17 16:10:13
    c语言实现进制转换,分享给大家,谢谢指导
  • C语言栈实现进制转换

    千次阅读 2020-10-19 11:36:11
    #include<stdio.h> #include<stdlib.h> #include<...typedef struct //定义的结构体 { int data[MAXSIZE]; int top; }Se,*Pe; Pe begin(); //的初始化 void ru(Pe S,int x); //入栈函数 P
  • 栈实现数的进制转换

    2018-10-08 23:01:43
    本程序实现了链栈对数的进制转换。是先进后出功能的一个十分简单具体的例子。
  • 描述: 《数据结构C语言版》P48页 算法思想: 当前数字不断除以目标进制数,将余数进栈,直到当前数字为... def conversion(self, number, n): # number为要转换的十进制数字,n为目标进制 stack = [] s = '...
  • 用栈实现进制转换

    千次阅读 2020-06-06 16:16:03
    将一个十进制整数N转换成八进制,把N与8求余得到八进制数的各位依次进栈,计算完毕后将中的八进制依次出栈输出,输出的结果就是待求八进制数 2.算法设计步骤 初始化一个空栈 把N与8求余得到的八进制数压入栈中 ...
  • 基本思想很简单 原数:N N = (N div d) X d + N mod d //Order Stack //apply of stack --- conversion of number systems #include&lt;stdio.h&gt; #include&...#define STACKIN...
  • C++顺序栈实现进制转换

    千次阅读 多人点赞 2019-04-20 19:14:16
    C++语言,顺序栈实现进制向任意进制转换 #include<iostream> #include<stdlib.h> #include<fstream> using namespace std; typedef int ElemType; struct Stack{ ElemType *...
  • 使用栈实现进制转换.cpp
  • 链式进制转换源代码 #define datatype int typedef struct stacknode { int num; datatype data; struct stacknode *pNext; }StackNode; StackNode * init(StackNode * phead);//初始化 StackNode * push...
  • 数据结构中,利用栈实现进制转换

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,392
精华内容 32,556
关键字:

用栈实现进制转换