Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Ошибка в коде из-за bitset |
Автор: Kseni1995 6.5.2014, 12:48 | ||
Не работает программа! Задание было такое: напишите программу invert(p,x,n), возвращающую значение х с инвертированными n-битами, начиная с позиции p ( остальные биты не меняются). Ввожу, подчеркивает bitset при выводе и выдает такую ошибку: ] 1> Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно 1> error C2440: <function-style-cast>: невозможно преобразовать "unsigned int" в "std::bitset<_Bits>" 1> with 1> [ 1> _Bits=32 1> ] 1> Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно. Мой код:
|
Автор: Guinness 6.5.2014, 13:10 |
http://ideone.com/fxM6Go - тут вроде все компилируется. В чем работаем, чем компилиурем? |
Автор: xvr 6.5.2014, 13:18 |
Функция invert просто жуть! И маска вычисляется гораздо проще (в 3 операции, а не в 9), а уж результат вообще вычисляется в одну операцию (а не в 5). |
Автор: Kseni1995 6.5.2014, 13:40 | ||||
Microsoft Visual C++ 2010 Express Там действительно все вроде так, спасибо! Добавлено через 1 минуту и 27 секунд
А как нужно? |
Автор: xvr 6.5.2014, 13:50 | ||
|
Автор: Kseni1995 6.5.2014, 17:39 | ||||
Спасибо! Действительно проще |
Автор: feodorv 9.5.2014, 09:13 | ||
xvr, ![]() Не сочтите за троллинг, но если мне захочется все биты инвертировать?
в 32-х битном окружении уже http://ideone.com/Sgy5VP... |
Автор: xvr 9.5.2014, 09:19 | ||
Да, это проблема. Надо будет предусмотреть этот частный случай ![]() |
Автор: mes 10.5.2014, 11:25 | ||
или инвертирoвать лoгику ![]()
|