Marat087 » 12 мар 2009, 14:59
Описать функцию, которая, используя стек, преобразует десятичное число N в любую другую систему счисления с основанием В. Используя эту функцию, вывести числа в двоичной, восьмеричной и шестнадцатеричной системах счисления.
Перевод в двоичную и восьмеричную СС работает нормально, а вот 16 как преобразовать числа в символы.
Код: Выделить всё
#include<ctype.h>
#include<conio.h>
#include<stdlib.h>
#include<fstream.h>
#include<iostream.h>
struct Stack
{
int data;
Stack *pred;
};
typedef Stack* Sptr;
Sptr top=NULL;
void push(int);
int pop();
int test;
int result=0;
int pow=1;
int di=2;
int z=10;
void main()
{
clrscr();
cout<<"BBedite desati4noe 4islo:\n";
cin>>test;
cout<<"Biberite SS\n";
cin>>di;
while (test>0)
{
result+=(test%di)*pow;
push(result);
test/=di;
pow*=z;
}
cout<<"Otvet:\t"<<pop();
getch();
}
void push (int t)
{
Sptr tmp=new Stack;
tmp->pred=top;
top=tmp;
top->data=t;
}
int pop()
{
Sptr tmp=top;
int result=top->data;
top=top->pred;
delete tmp;
return (result);
}
Описать функцию, которая, используя стек, преобразует десятичное число N в любую другую систему счисления с основанием В. Используя эту функцию, вывести числа в двоичной, восьмеричной и шестнадцатеричной системах счисления.
Перевод в двоичную и восьмеричную СС работает нормально, а вот 16 как преобразовать числа в символы.
[code]#include<ctype.h>
#include<conio.h>
#include<stdlib.h>
#include<fstream.h>
#include<iostream.h>
struct Stack
{
int data;
Stack *pred;
};
typedef Stack* Sptr;
Sptr top=NULL;
void push(int);
int pop();
int test;
int result=0;
int pow=1;
int di=2;
int z=10;
void main()
{
clrscr();
cout<<"BBedite desati4noe 4islo:\n";
cin>>test;
cout<<"Biberite SS\n";
cin>>di;
while (test>0)
{
result+=(test%di)*pow;
push(result);
test/=di;
pow*=z;
}
cout<<"Otvet:\t"<<pop();
getch();
}
void push (int t)
{
Sptr tmp=new Stack;
tmp->pred=top;
top=tmp;
top->data=t;
}
int pop()
{
Sptr tmp=top;
int result=top->data;
top=top->pred;
delete tmp;
return (result);
}[/code]