Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 5

Сброс бита n

27.09.2016, 21:09. Показов 1009. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать функцию, сбрасывающую бит n без знакового однобайтового числа и отображает на экране полученное значение в двоичной системе счисления.
Из десятичной в двоичную переводит, но бит n не сбрасывает. Подскажите пожалуйста, что надо сделать?
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
AnsiString conert(int a)
{ int i,j,b,n;    
int s[10];
AnsiString str="";
 for (j=0;j<8;j++) s[j]=0;
 for (j=0;j<8;j++)
 {  b&=~(1 << n);
 b=a&(1<<(7-j));
 if(b) s[j]=1; else s[j]=0;
 
 str+=IntToStr(s[j]);
 if(j==3)str+=" ";
 }
return str;
}
 
void __fastcall TForm1::Edit1Change(TObject *Sender)
{ int i,n;
n=StrToInt(Edit2->Text);
AnsiString string1="";
if(Edit1->Text!="") n=StrToInt(Edit2->Text);
 i=StrToInt(Edit1->Text);
string1= conert(i);
Panel1->Caption=string1;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2016, 21:09
Ответы с готовыми решениями:

Значение первого бита в файле преобразовать в цвет пикселя
Если создал не в том разделе, прошу перенести в нужный. Спасибо, простите! Я не знаю как задать правильно вопрос или что мне искать в...

Сброс цвета и шрифта
Доброго времени суток.Подскажите пожалуйста как сделать чтобы по клику цвет и шрифт компонентов RadioButton, CheckBox, RadioGroup...

Сброс состояния программы
Коллеги, вновь столкнулся с вопросом, который частенько у меня всплывает: как сбросить состояние программы? Другими словами, необходимо...

5
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
27.09.2016, 21:43
Цитата Сообщение от Студент 2014 Посмотреть сообщение
Создать функцию, сбрасывающую бит n без знакового однобайтового числа
Беззнаковое однобайтное число - это unsigned char или просто BYTE.
C++
1
2
3
4
5
6
7
8
AnsiString conert(BYTE a, int bit)
{
 AnsiString result = "";
 if(bit > 7) return "Номер бита не может быть больше 7";
 a &= ~(1 << bit);
 for(int i = 0; i < 8; i++) result = AnsiString((a >> i) % 2) + result;
 return result;
}
2
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 5
27.09.2016, 23:01  [ТС]
d7d1cd, Спасибо. А не подскажешь как получившееся двоичное число перевести в десятичное?
0
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
28.09.2016, 08:22
Получившееся число это то, что возвращает функция conert? Так она возвращает не число, а строку. Чтобы преобразовать ее в десятичное число выполни код:
C++
1
2
3
4
5
6
7
AnsiString numstr = conert(255, 0); /* сбрасываем нулевой бит числа 255, получаем 254*/
BYTE num = 0;
 
for(int i = 0; i < 8; i++)
 if(numstr[numstr.Length() - i] == '1') num |= 1 << i;
 
ShowMessage(AnsiString(num)); /* здесь получаем сообщение с текстом "254" */
2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
28.09.2016, 14:07
Обязательно с циклами заморачиваться?
Цитата Сообщение от d7d1cd Посмотреть сообщение
C++
1
2
for(int i = 0; i < 8; i++) result = AnsiString((a >> i) % 2) + result;
*return result;
прекрасно заменяется
C++
1
2
3
 char s[32] = {0};
 itoa(a, s, 2); // не забываем подключить stdlib.h / cstdlib
 return AnsiString(s);
, а обратное преобразование
Цитата Сообщение от d7d1cd Посмотреть сообщение
C++
1
2
for(int i = 0; i < 8; i++)
*if(numstr[numstr.Length() - i] == '1') num |= 1 << i;
- вот этим:
C++
1
int num = strtol(numstr.c_str(), NULL, 2); // из того же cstdlib
... И никаких циклов.
2
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
28.09.2016, 15:03
Цитата Сообщение от volvo Посмотреть сообщение
... И никаких циклов.
А все от не знания функций стандартных библиотек
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2016, 15:03
Помогаю со студенческими работами здесь

Ранний сброс hazard pointer
Вопрос к господам интересующимся lock-free структурами данных. Разбирал методику hazard pointer у Williams-а в его C++ Concurrency in...

Сброс фокуса с элементов управления
Имеется форма с событием FormMouseWheelDown/Up. На форме есть панель, на панели очень много различных элементов управления, например...

Сброс DBLookupComboBox
Подскажите пожалуйста как можно сбросить DBLookupComboBox, чтоб не было выбрано никакое значение, как при запуске программы. Спасибо)

Сброс фильтров
Всем привет. Подскажите как можно отключить фильтр (То есть отключить сортировку). В моем случае это сортировка по алфавиту. ...

Сброс бита CBI (Atmel Studio 6.2)
Картинки внизу... Использую Atmel Studio 6.2 для написания программы для Avr Mega. Проэкт executable C. Увидел возможность...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru