Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
#1

Преобразование чисел с десятичной системы исчисления - C++

17.02.2010, 16:24. Просмотров 1397. Ответов 8
Метки нет (Все метки)

Помогите плз, задача вообще ппц
Организуйте ввод чисел в десятичной системе счисления и преобразование их в формат с фиксированной запятой. Длина разрядной сетки n. Вывод результатов в двоичной, восьмеричной и шестнадцатеричной системах счисления.
на языке С
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2010, 16:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразование чисел с десятичной системы исчисления (C++):

Написать рекурсивную функцию перевода числа с десятичной системы исчисления в двоичную - C++
Здравствуйте! Нужно написать рекурсивную функцию перевода числа с десятичной системы исчисления в двоичную. Примерно знаю как...

Перевод чисел из десятичной системы счисления в 2, 8 и 16 - C++
Всем привет,нужна помощь. Помогите,пожалуйста. Нужно перевести из десятичной системы счисления в другую(2,8 и 16). Основание и число...

Перевод целых чисел из десятичной системы счисления в другие - C++
вот зробив алгоритм переведення з 10-вої в n систему числення, але біда в тому шо незнаю як написати код на С++, знайшов шось в інеті і...

Перевод чисел из десятичной системы счисления в двоичную, восьмеричную, шестнадцатеричную - C++
напишите код программы для проверки перевода чисел из десятичной системы счисления в двоичную,восьмеричную,шестнадцатеричную на языке С ...

Разработать программу перевода вещественных чисел из десятичной системы счисления в двоичную - C++
Помогите пожалуйста написать программу.Разработать программу перевода вещественных чисел из десятичной системы счисления в двоичную.

Перевод числа из десятичной в троичную симметричную систему исчисления - C++
Всем доброго времени суток. Необходимо перевести число в троичную симметричную системы исчисления(0, 1, i(-1)). Тот факт, что остаток...

8
SerЁga
32 / 32 / 4
Регистрация: 18.08.2009
Сообщений: 93
24.02.2010, 21:58 #2
Вот код, переводит из десятичной с/с в заданную пользователем и с заданной точностью.
Правда на выходе формируется массив char.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<stdio.h>
void main()
{
int ss,k1=10,k2=11,t,num1,i;
double num;
char ms[20]={' ',' ', ' ',' ',' ', ' ',' ',' ', ' ',' ',' ', ' ',};
char znak='+';
printf("vvedite isxodnoe chislo\n");
scanf("%lf",&num);
if (num<0) {znak='-';num*=-1;}
printf("vvedite novoe osnovanie\n");
scanf("%d",&ss);
printf("vvedite tochnost\n");
scanf("%d",&t);
    num1=num;
    num=num-num1;
      while(num1>=ss)
      {
          i=num1%ss;
          num1/=ss;
          ms[k1--]=i>9?i-10+'a':i+'0';
      }
      ms[k1--]=num1>9?i-10+'a':num1+'0';
      ms[k1]=znak;
      ms[k2++]='.';
      while(num!=0 && k2-11<=t)
      {
          num*=ss;
          i=num;
          num-=i;
          ms[k2++]=i>9?i-10+'a':i+'0';
      }
      printf("\n");
      for (i=k1;i<k2;i++) {printf("%c",ms[i]);}
}
2
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
24.02.2010, 22:14  [ТС] #3
а не могли бы Вы объяснить по ходу задачи ?

не очень понял код программы, есть ли альтернативные варианты ?
0
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
10.03.2010, 15:41  [ТС] #4
А еще как-то можно написать эту задачу, а то не оч понятно. =(
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
10.03.2010, 19:35 #5
я так понял числа в float формате вводятся?
все намного проще
сначала число s разбиваем на 2 числа:
s1=(int)s;
s2=fabs((int)s-s); //тут еще нужно домножить до целого числа, см. пример ниже
допустим s=50,284
s1=(int)s=50;
s2=fabs((int)s-s)=|50-50,284|=0,284 // тут домножать на 10^3 вообщем на 10 в степени равной кол-ву знаков после запятой точности

затем выводим, например в 8 с.с.
printf("s=%o,%o",s1,s2); //суть состоит в том, чтобы разбить число на 2 целых и вывести их одно до запятой, одно - после. %o - модификатор вывода. Выводит число в восьмеричной системе. Погуглите - есть и для 16 с.с. . вроде это %x. На счет 2 с.с. уже и не вспомню.

Дерзайте!
1
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
10.03.2010, 19:38  [ТС] #6
ясно, попробую, надеюсь получится
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
10.03.2010, 19:39 #7
а вообще, если вы знаете украинский язык (хотя там в принципе в блок-схеме вроде понятно будет) посмотрите вот этот файл
1
Вложения
Тип файла: rar Лабораторна робота.rar (21.8 Кб, 83 просмотров)
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,811
18.03.2010, 10:38 #8
Лестат, как-то невнятно задание написано. Результат тоже спорный получается. Но в любом случае, вот, что получилось:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <math.h>
 
typedef struct {
    int whole;
    int fract;
} Number_t;
 
Number_t *getNumber(double val, size_t precision, Number_t *num){
    num->whole = (int)val;
    num->fract = (int)( ( val - floor(val) ) * pow(10, precision) + 0.5 );
    return num;
}
 
void printBin(int d){
    if ( d / 2 )
        printBin(d / 2);
    printf("%d", d % 2);
}
 
void binNumber(Number_t* num){
    printBin(num->whole);
    printf(".");
    printBin(num->fract);
}
 
void octNumber(Number_t *num){
    printf("%o.%o", num->whole, num->fract);
}
 
void hexNumber(Number_t *num){
    printf("%x.%x", num->whole, num->fract);
}
 
void decNumber(Number_t *num){
    printf("%d.%d", num->whole, num->fract);
}
 
#define PRECISION 3
 
int main(void){
    double val;
    Number_t num;
    
    while ( 1 ){
        printf("\nDouble value (0 - exit): ");
        if ( scanf("%lf", &val) != 1 || val == 0.0 )
            break;
        getNumber(val, PRECISION, &num);
        printf("Bin: ");
        binNumber(&num);
        printf("\nOct: ");
        octNumber(&num);
        printf("\nHex: ");
        hexNumber(&num);
        printf("\nDec: ");
        decNumber(&num);
        printf("\n");
    }
    
    return 0;
}
1
turtLe
3 / 3 / 2
Регистрация: 11.11.2009
Сообщений: 41
19.03.2010, 16:42 #9
Цитата Сообщение от SerЁga Посмотреть сообщение
Вот код, переводит из десятичной с/с в заданную пользователем и с заданной точностью.
Правда на выходе формируется массив char.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<stdio.h>
void main()
{
int ss,k1=10,k2=11,t,num1,i;
double num;
char ms[20]={' ',' ', ' ',' ',' ', ' ',' ',' ', ' ',' ',' ', ' ',};
char znak='+';
printf("vvedite isxodnoe chislo\n");
scanf("%lf",&num);
if (num<0) {znak='-';num*=-1;}
printf("vvedite novoe osnovanie\n");
scanf("%d",&ss);
printf("vvedite tochnost\n");
scanf("%d",&t);
    num1=num;
    num=num-num1;
      while(num1>=ss)
      {
          i=num1%ss;
          num1/=ss;
          ms[k1--]=i>9?i-10+'a':i+'0';
      }
      ms[k1--]=num1>9?i-10+'a':num1+'0';
      ms[k1]=znak;
      ms[k2++]='.';
      while(num!=0 && k2-11<=t)
      {
          num*=ss;
          i=num;
          num-=i;
          ms[k2++]=i>9?i-10+'a':i+'0';
      }
      printf("\n");
      for (i=k1;i<k2;i++) {printf("%c",ms[i]);}
}
если не затруднит,может кто-нибудь добавить комментарии к этому коду?
0
19.03.2010, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2010, 16:42
Привет! Вот еще темы с ответами:

Составить программу для обучения переводу чисел из десятичной системы счисления в 16-ричную и обратно. - C++
Составить программу для обучения переводу чисел из десятичной системы счисления в 16-ричную и обратно. Программа должна предлагать...

Программа обучения переводу чисел из десятичной системы счисления в 2 10 и 16 систем счисления - C++
дали задание составить программу нужно чтобы на экран выводилось это: Программа обучение переводу чисел из десятичной систем...

Системы исчисления - C++
Здраствуйте !! Помогите пожалуйста доделать программу,которая переводит число в любую систему исчисления...Вот код программы,все...

Системы исчисления - C++
Здраствуйте !! Помогите пожалуйста доделать программу,которая переводит число в любую систему исчисления...Вот код программы,все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru