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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.82
sparta4ok
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 9
#1

Перевод чисел из 10 сс в 8 сс на С++ - C++

17.12.2011, 20:14. Просмотров 4128. Ответов 21
Метки нет (Все метки)

Задание: дается число m в десятичной системе счисления, надо преобразовать в 8-ричную систему счисления и подсчитать количество четных чисел n в восьмеричной записи числа. И всё это написать на C++ ! Помогите пожалуйста написать код программы, уже не знаю к кому обратиться
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2011, 20:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод чисел из 10 сс в 8 сс на С++ (C++):

Перевод массива вводимых чисел в массив чисел в другой системе счисления - C++ Builder
Доброго времени суток, предлагается оказать помощь студенту новичку) Есть пример реализации этого в ехе файле но как это запрограммировать...

Перевод чисел в двоичную систему счисления, сложение чисел в двоичной системе - Информатика
Задание 7 Задания к работе 1. Перевести данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы...

Перевод чисел из строки в массив чисел - C++
Задача: Ввод: Во входном файле содержится несколько (до 1000) строк, в каждой строке задается одно целое число от 6 до 1000000. Конец...

Чтение чисел через пробел из одного textbox'a и перевод чисел в другой textbox - C#
При выводе в textbox4 цикл for, все n раз, переводит из двоичной последовательности в десятичную только первую последовательность единиц и...

перевод чисел - C#
Напишите пожалуйста программу для перевода из 10-чной системы счисления в 2-чную

перевод чисел(с++) - C++
Здравствуйте!!! Наткнулся на интересну задачу, я ее решил, но ни как не пойму почему выходит не правильно!!! Суть задачи такая, вводим...

21
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
17.12.2011, 20:26 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
    for(int i = 0; i < 100; ++i)
    {
        int tmp = i, count = 0;
        while(tmp)
        {
            count += ~(tmp & 1) & 1;
            tmp >>= 3;
        }
        std::cout << std::dec << i << ' ';
        std::cout << std::oct << i << ' ' << count << std::endl;
    }
    return 0;
}
Пусть 0 - четное число.

Добавлено через 1 минуту
Цитата Сообщение от sparta4ok Посмотреть сообщение
количество четных чисел
Предположил, что имелось ввиду четных цифр
3
sparta4ok
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 9
17.12.2011, 20:31  [ТС] #3
Цитата Сообщение от soon Посмотреть сообщение
Предположил, что имелось ввиду четных цифр
да, правильно подметил, торопился когда писал!

Добавлено через 1 минуту
этот код, который ты написал для подсчета четных цифр как я понимаю да?!
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
17.12.2011, 20:34 #4
Для вывода сначала десятеричного представления числа, затем восьмеричного, и подсчета четных цифр в восмеричном представлении числа.
1
sparta4ok
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 9
17.12.2011, 20:37  [ТС] #5
есои честно не понял совсем объясни пожалуйста, просто я тут не вижу где перевод введенного нами числа из 10 сс в 8 сс!
0
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 20:40 #6
Сначала думал магия - но оказалось очень красиво!
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
17.12.2011, 20:49 #7
Цитата Сообщение от soon Посмотреть сообщение
std::cout << std::oct << i << ' ' << count << std::endl;
Выводит число в восьмеричном представлении.
Для непосредственного преобразования можно воспользоваться прмерно такой функцией
C++
1
2
3
4
5
6
7
8
9
10
std::string dec2oct(int num)
{
    std::string str;
    while(num)
    {
        str = static_cast<char>((num & 1) + (num & 2) + (num & 4) + '0') + str;
        num >>= 3;
    }
    return str;
}
Добавлено через 4 минуты
Цитата Сообщение от Dr.Urban Посмотреть сообщение
Сначала думал магия - но оказалось очень красиво!
Спасибо, приятно =)
0
sparta4ok
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 9
17.12.2011, 20:59  [ТС] #8
в том то и дело, что мне нужно написать программу с вводом числа в 10 сс и непосредственным переводом его в 8 сс, ну и подсчет четных цифр. Или я ничего не понимаю, или ты меня не понимаешь
дуб дубом конечно я, но всё таки хотелось бы чтобы от начала до конца код был : ну, чтобы ввести число, потом функция перевода этого числа в 8 сс, далее уже подсчет четных цифр

Добавлено через 4 минуты
очень прошу помочь мне, уже в понедельник сдавать надо если же кто очень хорошо поможет и напишет программу, то вознаграждение от меня я гарантирую, на честном слове!
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
17.12.2011, 21:02 #9
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
#include <iostream>
#include <string>
 
std::string dec2oct(int num)
{
    std::string str;
    while(num)
    {
        str = static_cast<char>((num & 1) + (num & 2) + (num & 4) + '0') + str;
        num >>= 3;
    }
    return str;
}
 
int countOfEvenNumberInOct(int num)
{
    int count = 0;
    while(num)
        {
            count += ~(num & 1) & 1;
            num >>= 3;
        }
    return count;
}
 
int main()
{
    int a;
    std::cin >> a;
    std::cout << dec2oct(a) << ' ' << countOfEvenNumberInOct(a) << std::endl;
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от sparta4ok Посмотреть сообщение
Или я ничего не понимаю, или ты меня не понимаешь
Не, я прекрасно понял. Просто можно было попробовать выкрутится с помощью std::oct, так было бы элегантнее
0
alkagolik
Заблокирован
17.12.2011, 21:02 #10
Цитата Сообщение от soon Посмотреть сообщение
ount += ~(tmp & 1) & 1;
Цитата Сообщение от soon Посмотреть сообщение
((num & 1) + (num & 2) + (num & 4) + '0')
это юмор?))
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
17.12.2011, 21:03 #11
Цитата Сообщение от alkagolik Посмотреть сообщение
это юмор?))
А что не так?
1
alkagolik
Заблокирован
17.12.2011, 21:07 #12
Цитата Сообщение от soon Посмотреть сообщение
А что не так?
да не, все так)) я тоже иногда "подсластить" коды люблю. Если чел как следует его не разберет, то преподу бедет потеха)). Например
C
1
((num & 1) + (num & 2) + (num & 4) + '0') == (num & 0x7 + '0')
1
soon
17.12.2011, 21:15
  #13

Не по теме:

Дык, такие задачки и нужны, для того, чтобы поразвлечься Помнится я как-то раз раздул задачку на амебы до ~30 строк, хотя там и 5 хватило бы. Зато было не очень скучно
Или же та тема про hello world.

1
sparta4ok
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 9
17.12.2011, 21:49  [ТС] #14
вроде как работает хорошо спасибо большое! если не затруднит сможешь пожалуйста засунуть туда проверку чтобы нельзя было вводить символы,буквы и т.д и т.п?

Добавлено через 9 минут
и еще как можно сделать чтобы он не считал нуль за четную цифру?!
0
alkagolik
Заблокирован
17.12.2011, 22:42 #15
Цитата Сообщение от sparta4ok Посмотреть сообщение
и еще как можно сделать чтобы он не считал нуль за четную цифру?!
можно. делай
0
17.12.2011, 22:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2011, 22:42
Привет! Вот еще темы с ответами:

Перевод чисел из 10 СС в 2 СС - C++
Помогите пожалуйста написать программу,которая представляла бы введенное число типа unsigned char в двоичном виде с помощью битовых масок.

Перевод чисел в CC - Lazarus
Помогите нужно написать программу которая переводит десятичные числа в двоичною, восмеричную и шестнадцатиричную систему счисления. ...

Перевод чисел - Delphi
Нужно создать программу, которая сопоставляет десятичные цифры словам кода 01247. Вводится десятичное число. Выводится код 2 из 5 этого...

перевод чисел - Pascal
народ помогите пожалуста закончить 10 класс! нужно написать программу которая делает следущие: вводиш число указываеш систему...


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

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

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