Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21
1

Целое десятичное преобразовать в двоичное, записать задом-наперед и перевести обратно в десятичное

22.10.2014, 13:50. Просмотров 1856. Ответов 4
Метки нет (Все метки)

Всем привет
Пожалуйста помогите разобраться
Целое положительное число m записывается в двоичной системе счисления, и разряды в этой записи переставляются в обратном порядке. Получившееся двоичное число переводится в десятичную систему счисления, и принимается за значение функции F(m). Например, m=41, F(m)=37. Написать и протестировать функцию.

Код есть, но глаза уже замыленые и не видят из-за чего программа зацикливается
Кликните здесь для просмотра всего текста
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
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <math.h>
 
int main()
{
    int func(a)
    {
        int inv = 0,
            fm = 0,
            x1 = 0,
            step = 0;
 
        while (a >= 1)
        {
            inv = (inv * 10) + (a % 10);
            a = a / 10;
        };
 
        while (inv >= 1)
        {
            x1 = (x1 * 10) + (inv % 2);
            inv = inv / 2;
        };
 
        while (x1 >= 1);
        {
            fm = fm + ((x1 % 10) * pow(2, step));
            step += 1;
        };
        return fm;
    }
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int m;
    printf("\n \t Программа целое положительное число m записывается "
           "\n в двоичной системе счисления, и разряды в этой записи "
           "\n переставляются в обратном порядке. Получившееся двоичное"
           "\n  число переводится в десятичную систему счисления и "
           "\n выводится на экран."
           "\n \t Введите m: ");
    scanf("%i", &m);
    printf("Результат преобразования: %i", func(m));
    return 0;
}

Заранее очень признателен
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2014, 13:50
Ответы с готовыми решениями:

Преобразовать введенное целое десятичное число в восьмеричное представление (через двоичное)
Преобразовать введенное целое десятичное число в восьмеричное представление (через двоичное) с...

Преобразовать десятичное число в двоичное
Vообщем немного не стандартная задача. Мне нужно преобразовать десятичное число в двоичное. И...

Перевести двоичное число в десятичное
у меня есть например ASCII код в двоичной системе какого то символа. как вывести это двоичное...

Перевести двоичное число в десятичное
совсем недавно начал, не понимаю почему при переводе у меня ноль помогите textBox2-&gt;Text = &quot;&quot;;...

4
4 / 4 / 6
Регистрация: 21.10.2014
Сообщений: 22
22.10.2014, 14:17 2
Лучший ответ Сообщение было отмечено 13Tre как решение

Решение

27 и 29 строки

Добавлено через 8 минут
на этом зацикливается, потому что нету условия выхода из цикла
C++
1
(x1 % 10)
0
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21
22.10.2014, 14:49  [ТС] 3
теперь не зацикливается, за что огромное спасибо)
но почему-то на шаге преобразования в двоичное число упорно пропускает нули, дописывая к числу только единички, как пофиксить, подскажите плз
багнутый цикл

C
1
2
3
4
5
6
7
8
9
10
        while (inv >= 1)
        {
            if (inv % 2 == 0)
                {
                    x1 *= 100;
                }
            else{
            x1 = (x1 * 10) + 1;
            }inv = inv / 2;
        };
0
4 / 4 / 6
Регистрация: 21.10.2014
Сообщений: 22
22.10.2014, 15:12 4
Лучший ответ Сообщение было отмечено 13Tre как решение

Решение

я бы таким способом преобразовывал число
C++
1
2
3
4
5
6
7
8
        int inv = 10;
        int binary_number = 0;
        int counter = 1;
        while (inv > 0) {
            binary_number += (inv % 2) * counter;
            inv /= 2;
            counter *= 10;
        }
0
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21
22.10.2014, 17:32  [ТС] 5
Move_Ahead
Огрооооомнейшее спасибо!

Добавлено через 5 минут
Move_Ahead
Огрооооомнейшее спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2014, 17:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перевести десятичное число в двоичное
Здравствуйте. Как перевести десятичное число в двоичное? var num, num2; num = -18; num2 =...

Перевести двоичное число в десятичное
Введите целое число, содержащее только 0 и 1 (т.е. &quot;двоичное&quot; целое число) и выведите его...

Двоичное число перевести в десятичное
Введите целое число в двоичной системе счисления и выведите его десятичный эквивалент. Указание....

Как преобразовать двоичное число в десятичное?
Как перделать двуичное число в десятичное (с помощью какой функции можно реализовать)


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

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

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