Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1

Логическая математика

28.08.2019, 12:13. Показов 2379. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Я не до конца понимаю двоичную с/с, логическую математику, операторы or, xor и т.п. Вот хоть стреляйте, не врубаюсь...
Итак, то что любое число можно представить суммой степеней двойки - это понятно.
Например, есть число 6 = 2 + 4 = 21 + 22, но 20 не входит, естественно.

Конечная задача такова: функция, проверяющая "вхождение" одного числа в другое, по принципу флагов. то есть
1 входит в 6 = ложь
2 входит в 6 = истина
4 входит в 6 = истина
и т.п.

Добавлено через 1 минуту
так, чтобы простыми словами

Добавлено через 4 минуты
тему, наверное, неправильно назвал....
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.08.2019, 12:13
Ответы с готовыми решениями:

Логическая операция AND
Вот сижу и разбираюсь с логическим выражением AND Я ведь правильно понимаю, если логически умножать числа например 3 AND 4 результат...

Логическая ошибка в цикле.
День добрый, подскажите ошибку в процедуре procedure TForm1.Button4Click(Sender: TObject); begin k:=strToint(edit1.text); ...

Логическая функция order(r)
Помогите пожалуйста написать логическую функцию order(r), проверяющую, упорядочены ли по убыванию элементы файла r, состоящего из...

44
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
30.08.2019, 15:25
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DenNik Посмотреть сообщение
Почему?
потому что вещественная арифметика (числа в плавающую запятую переводятся), потом вызывается весьма непростая операция возведения вещественного числа в степень, потом результат приводится к целочисленному значению.
и всё это абсолютно не нужно. от слова "совсем".

приведён пример, как надо:
Цитата Сообщение от GoodWeather Посмотреть сообщение
Может p := 1; до цикла, и p := p Shl 1; в самом конце тела цикла?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
var
  i,n,p: byte;
begin
  n:= SpinEdit1.Value;   // число-набор параметров
  p := 1;
  for i:= 0 to Pred(CheckListBox1.Count) do
  begin
    // i - порядковый номер свойства в списке, а также степень двойки
    // определяем наличие параметра i в наборе параметров
    // (checkListBox - для визуализации)
    CheckListBox1.Checked[i]:= (p and n) <> 0;
    p := p shl 1
  end;
end;
2
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
30.08.2019, 16:26  [ТС]
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
p := p shl 1
говорю же, слаб я в этой области

Добавлено через 1 минуту
но, как я понял, это применимо только к степеням двойки?
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
30.08.2019, 17:24
Цитата Сообщение от DenNik Посмотреть сообщение
но, как я понял, это применимо только к степеням двойки?
shl 1 - умножение на 2
shr 1 - деление на 2

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

предлагал же напеисать функцию выводить результат в битовом представлении на экран)))) уже ивопросов бы не было никаких))
1
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
31.08.2019, 02:35
Цитата Сообщение от DenNik Посмотреть сообщение
но, как я понял, это применимо только к степеням двойки
Да. Но если речь идёт о флагах, то это только степени дойки!
DenNik, вы бы всё-таки привели/озвучили бы свою задачу. Возмлжно помогли бы гораздо быстрее.
0
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
31.08.2019, 20:24
В десятичнойВ двоичнойЭквивалент
20 SHL 1 => 40#00010100b SHL 1 => #00101000b20 * 21
20 SHL 2 => 80#00010100b SHL 2 => #01010000b20 * 22
20 SHL 3 => 160#00010100b SHL 3 => #10100000b20 * 23

В десятичнойВ двоичнойЭквивалент
20 SHR 1 => 10#00010100b SHR 1 => #00001010b20 Div 21
20 SHR 2 => 5#00010100b SHR 2 => #00000101b20 Div 22
20 SHR 3 => 2#00010100b SHR 3 => #00000010b20 Div 23
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.08.2019, 20:24
Помогаю со студенческими работами здесь

Логическая операция Boolean программа
Не подскажете где можно взять полную информацию о логических функциях в дельфи (Boolean например)

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

Математика для программиста, Выш.мат, Дискретная математика, Мат.Статистика
Всем качественного контента, дело такое, сижу на 3м курсе.. В Бикини ботоме... По Прог. Обуч-я касательно математики было: Дискретная...

Логическая
https://www.cyberforum.ru/attachment.php?attachmentid=22614&amp;stc=1&amp;d=1267019658 Помогите кто чем может)) хотябы какое то разъяснение...

логическая
Расширение программы из предыдущего упражнения при наличии его также распечатать ориентировочной цене пункта в одном и в течение двух лет с...


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

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru