Перевод в 16тиричн СС(C++)

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Перевод в 16тиричн СС(C++)

Re: Перевод в 16тиричн СС(C++)

Albor » 12 мар 2009, 18:11

Код: Выделить всё

printf("%X",num);//выведет число num в 16-ричном виде
А вообще, число в памяти хранится в двоичном виде, переводить в 2-ю, 8-ю, 16-ю ссч проще побитовыми операциями. В 2-й ссч проверяется каждый разряд, в 8-й - по 3 разряда, в 16-ричной - по 4.

Перевод в 16тиричн СС(C++)

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);
 }

Вернуться к началу