ВУЗ:
Составители:
Рубрика:
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
Задача 4. Дано положительное целое число в десятичной системе счисле-
ния. Перевести его в заданную систему счисления.
При переводе числа в заданную систему счисления производится после-
довательное получение остатков от деления числа на основание системы
счисления, которые при записи в обратном порядке образуют требуемое чис-
ло. Поэтому вычисленные остатки от деления заносятся в стек, а затем извле-
каются из него для печати. Если основание системы счисления больше 10 (то-
гда для записи числа используются буквенные обозначения), на печать выво-
дится соответствующий символ (10 – ‘A’, 11 – ‘B’ и т.д.).
// определение функции перевода положительного целого числа
// из десятичной системы счисления в любую заданную
// с основанием от 2 до 16
void PrintChislo(int number, int base)
{
Stack s;
s.head=NULL;
int copy=number, n;
// вычисленные остатки от деления числа
// на основание системы счисления помещаются в стек
while(number!=0)
{
PushStack(s,number%base);
number=number/base;
}
// печать разрядов полученного числа
// путем извлечения их значений из стека
printf("Число %d в %d-ой системе счисления - ",
copy,base);
while(PopStack(s,n)==1)
{
if(n<10)
printf("%d",n);
else
printf("%c",'A'+n-10);
}
printf("\n");
}
74
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
Задача 4. Дано положительное целое число в десятичной системе счисле-
ния. Перевести его в заданную систему счисления.
При переводе числа в заданную систему счисления производится после-
довательное получение остатков от деления числа на основание системы
счисления, которые при записи в обратном порядке образуют требуемое чис-
ло. Поэтому вычисленные остатки от деления заносятся в стек, а затем извле-
каются из него для печати. Если основание системы счисления больше 10 (то-
гда для записи числа используются буквенные обозначения), на печать выво-
дится соответствующий символ (10 – ‘A’, 11 – ‘B’ и т.д.).
// определение функции перевода положительного целого числа
// из десятичной системы счисления в любую заданную
// с основанием от 2 до 16
void PrintChislo(int number, int base)
{
Stack s;
s.head=NULL;
int copy=number, n;
// вычисленные остатки от деления числа
// на основание системы счисления помещаются в стек
while(number!=0)
{
PushStack(s,number%base);
number=number/base;
}
// печать разрядов полученного числа
// путем извлечения их значений из стека
printf("Число %d в %d-ой системе счисления - ",
copy,base);
while(PopStack(s,n)==1)
{
if(n<10)
printf("%d",n);
else
printf("%c",'A'+n-10);
}
printf("\n");
}
74
Страницы
- « первая
- ‹ предыдущая
- …
- 72
- 73
- 74
- 75
- 76
- …
- следующая ›
- последняя »
