|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.05.2014, 17:52 | #1 |
Пользователь
Регистрация: 04.05.2014
Сообщений: 14
|
с++ побитовые операторы. Помогите с программой
Не получается никак! Особенно вывести в двоичной системе само число х и инвертированное значение.
Напишите программу invert(p,x,n), возвращающую значение х с инвертированными n-битами, начиная с позиции p ( остальные биты не меняются). Подскажите пожалуйста! |
04.05.2014, 18:03 | #2 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,679
|
Что удалось сделать самостоятельно? Выкладывайте, посмотрим.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
05.05.2014, 17:57 | #3 |
Пользователь
Регистрация: 04.05.2014
Сообщений: 14
|
unsigned x( unsigned x, int p, int n){
x>>(p+1-n)&~(~0<<n); return x;} int main(){ unsigned x; int p,n; cout<<"Введите х в шестнадцатеричной: "; cin>>hex>>x; cout<<"Введите р и число инвертированных битов n "; cin>>dec>>p>>n; cout<<"Инвертированное х "; printf("%d", invert(x,p,n)); getch(); } Вот то, что я смогла написать. Вы обещали помочь-"Выкладывайте, посмотрим."))) Пожалуйста!) |
05.05.2014, 18:05 | #4 |
Пользователь
Регистрация: 04.05.2014
Сообщений: 14
|
unsigned x( unsigned x, int p, int n){
x>>(p+1-n)&~(~0<<n); return x;} int main(){ unsigned x; int p,n; cout<<"Введите х в шестнадцатеричной: "; cin>>hex>>x; cout<<"Введите р и число инвертированных битов n "; cin>>dec>>p>>n; cout<<"Инвертированное х "; printf("%d", invert(x,p,n)); getch(); } Вот то, что я смогла написать. Вы обещали помочь-"Выкладывайте, посмотрим."))) Пожалуйста!) |
05.05.2014, 18:27 | #5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Скорее всего, есть и более изящные способы инвертировать выбранный бит.
UPD Добавил более прикольный вариант инвертирования. Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 05.05.2014 в 18:45. |
05.05.2014, 19:06 | #6 |
Пользователь
Регистрация: 04.05.2014
Сообщений: 14
|
Огромное спасибо!!!
|
05.05.2014, 23:10 | #7 |
Пользователь
Регистрация: 04.05.2014
Сообщений: 14
|
Можно обращусь к вам, я ввожу ваш код, но подчеркивается bitset, из-за этого программа не работает. Вот что выдает:
] 1> Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно 1> error C2440: <function-style-cast>: невозможно преобразовать "unsigned int" в "std::bitset<_Bits>" 1> with 1> [ 1> _Bits=32 1> ] 1> Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно В чем дело? Подскажите |
05.05.2014, 23:26 | #8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Каким компилятором пользуетесь?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
06.05.2014, 07:16 | #9 |
Пользователь
Регистрация: 04.05.2014
Сообщений: 14
|
|
06.05.2014, 20:54 | #10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
К сожалению, не знаю, как избавиться от ошибки. В Visual Studio 2012 и ideone.com ошибка не возникает.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Побитовые операторы | Trampcher | Visual C++ | 1 | 12.06.2013 12:27 |
Побитовые операторы PHP в Delphi | AET | Общие вопросы Delphi | 3 | 23.11.2012 20:26 |
Проблема с программой. Побитовые операторы. Си. | Chelovekpredel | Помощь студентам | 2 | 10.06.2012 18:07 |
Побитовые операторы (number && + number | 0 || 0) | Викдон | JavaScript, Ajax | 0 | 05.10.2011 20:34 |
помогите разобраться(условные операторы) | k1real | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 04.11.2008 05:00 |