Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 47

Изменить функцию в обратном порядке

26.04.2013, 08:27. Показов 702. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как изменить функцию в обратном порядке?
вот функция в которую подаёшь вектор состоящий из 8ми элементов и она возвращает элемент типа char, в которую забиты 0 и 1.
C++
1
2
3
4
5
6
7
8
9
10
char ber(vector <bool> fg) 
{
   char byte = 0;
        for(int i = 0; i < fg.size(); ++i) 
        {
            if(fg.at(i))
                byte |= 1 << i; //ВОТ ЭТА СТРОКА МНЕ НЕ ЯСНА(|) ЭТО ОПЕРАНД ПОБИТОВОГО ИЛИ, А БОЛЬШЕ Я НЕ ЗНАЮ
        }
return byte;
}
а теперь мне надо наоборот эту переменную подавать в качестве аргумента функции, а на выходе получать vector<bool> из 8ми элементов.
Я бы и сам сделал, но так и не разобрался как работает строка с операндом (|=)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.04.2013, 08:27
Ответы с готовыми решениями:

Вывести числа в обратном порядке, при этом переставив все цифры в каждом числе в обратном порядке
Чтобы Вовочка не скучал на уроке информатики, Иван Иваныч специально для него к каждому уроку готовил одну каверзную задачу. Сегодня он...

Описать функцию записи фамилии в обратном порядке
Используя множественное наследование, описать производный класс с функцией задания этих переменных. В главной функции main ввести эти...

Сделать шаблонную функцию массива перестановка элементов в обратном порядке
Сделать шаблонную функцию массива перестановка элементов в обратном порядке на С++

7
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 10:29
C++
1
byte |= 1 << i;
эквивалент:
C++
1
byte = byte | 1 << i; // Сдвигаем 1 влево на i, выполняем "или" с byte и результат записываем в byte.
Обратная функция:
C++
1
2
3
4
5
6
7
8
9
10
11
std::vector<bool> reb( uint8_t byte )
{
    std::vector<bool> res;
 
    for( int i=0; i<8; ++i )
    {
        res.push_back( byte >> i & 1 );
    }
 
    return res;
}
1
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 47
26.04.2013, 11:33  [ТС]
Цитата Сообщение от Tulosba Посмотреть сообщение
C++
1
byte |= 1 << i;
эквивалент:
C++
1
byte = byte | 1 << i; // Сдвигаем 1 влево на i, выполняем "или" с byte и результат записываем в byte.
Обратная функция:
C++
1
2
3
4
5
6
7
8
9
10
11
std::vector<bool> reb( uint8_t byte )
{
    std::vector<bool> res;
 
    for( int i=0; i<8; ++i )
    {
        res.push_back( byte >> i & 1 );
    }
 
    return res;
}
а что значит ключевое слово (uint8_t) и можете сказать "сдвигаем 1" это подразумевается один элемент или как символ?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 11:38
Цитата Сообщение от Мишутка1 Посмотреть сообщение
а что значит ключевое слово (uint8_t)
uint8_t - это целый беззнаковый тип, который содержит 8 бит (определен в файле cstdint). Использовать char для Ваших целей не очень правильно, т.к. char - это в первую очередь символ, а не просто байт.
Цитата Сообщение от Мишутка1 Посмотреть сообщение
"сдвигаем 1"
берем число 1 (00000001) и сдвигаем влево битовое представление числа, получаем (00000010) 2.
1
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 47
26.04.2013, 11:41  [ТС]
Цитата Сообщение от Tulosba Посмотреть сообщение
uint8_t - это целый беззнаковый тип, который содержит 8 бит (определен в файле cstdint). Использовать char для Ваших целей не очень правильно, т.к. char - это в первую очередь символ, а не просто байт.

берем число 1 (00000001) и сдвигаем влево битовое представление числа, получаем (00000010) 2.
я вот собираюсь заново изучать типы данных, так как я с самого начала не до понимаю. В памяти же ведь все типы занимают определенное число байт, т. е. бит, как тогда определяется что в этих ячейках записан символ, или записано число с плавающей точкой. От этого понимания я далёк.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 11:53
Цитата Сообщение от Мишутка1 Посмотреть сообщение
как тогда определяется что в этих ячейках записан символ, или записано число с плавающей точкой.
В языке С++ используется строгая типизация данных, если Вы объявили что-то как символ, оно будет интерпретироваться как символ. Другое дело, что могут быть явные и неявные преобразования, но это уже совсем другая история.
1
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 47
26.04.2013, 11:55  [ТС]
Цитата Сообщение от Tulosba Посмотреть сообщение
В языке С++ используется строгая типизация данных, если Вы объявили что-то как символ, оно будет интерпретироваться как символ. Другое дело, что могут быть явные и неявные преобразования, но это уже совсем другая история.
препода говорят наоборот, нет никакого символа есть только 0 и 1. Это тоже самое куда течёт ток. Ну ладно думаю это тема бесконечная и вам мне это не объяснить. Спасибо за функцию.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 11:59
Цитата Сообщение от Мишутка1 Посмотреть сообщение
нет никакого символа есть только 0 и 1.
можно продолжить и сказать, что нет 0 и 1, а есть только сигнал или его отсутствие.
Что есть, а чего нет, зависит от уровня абстракции.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2013, 11:59
Помогаю со студенческими работами здесь

Изменить заданный числовой массив так, чтобы элементы были расположены в нем в обратном порядке
Доброго времени суток. Изменить заданный числовой массив так, чтобы элементы были расположены в нем в обратном порядке. Задача...

Реализовать функцию копирования элементов первого массива во второй в обратном порядке.
1. Создать проект, который содержит консольную программу Win32. 2. Создать два массива на N элементов, размер первого определить неявно...

Реализовать функцию, которая переписывает элементы входного массива в обратном порядке
Реализовать функцию, которая переписывает элементы входного массива в обратном порядке. на вход функция получает указатель на первый...

Написать функцию, которая выведет цифры заданного числа в обратном порядке
Добрый вечер, очень нужна ваша помощь. В С++ я новичок, самоучка, не хватает знаний. Задача: Написать функцию, которая выведет цифры...

Разработать функцию, которая переставляет в обратном порядке цифры заданного долгого целого числа
Разработать функцию, которая переставляет в обратном порядке цифры заданного долгого целого числа (например, число 5321 превращается в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru