powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Логическая задачка...
25 сообщений из 28, страница 1 из 2
Логическая задачка...
    #36180827
Dmitry55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите новичку в программировании...

Установить в единицу самый правый нулевой бит в произвольном целом числе, не используя циклов и рекурсии? Например, 101011->101111 или 0111->1111.

var A: integer;

begin
write ('Vvedite A: ');
readln (A);

A := A OR (A+1);

writeLn ('New A = ', A);

end.

Правильно ли решение??
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180833
Demon9151
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry55Помогите новичку в программировании...

Установить в единицу самый правый нулевой бит в произвольном целом числе, не используя циклов и рекурсии? Например, 101011->101111 или 0111->1111.

var A: integer;

begin
write ('Vvedite A: ');
readln (A);

A := A OR (A+1);

writeLn ('New A = ', A);

end.

Правильно ли решение??

Если вопрос только в правильности, то нет.

01100 + 1 = 01101 or 01100 = 01101
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180834
Dmitry55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но в вашем примере самый правый нулевой бит установился в единицу !!?
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180841
Demon9151
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry55Но в вашем примере самый правый нулевой бит установился в единицу !!?

Ой...извеняюсь...бегло читал задание подумал чёто- про самый левый) ну тогда такой вариант

01101 + 1 = 01110 or 01101 = 01111
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180845
Demon9151
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобще решение очень просто...но т.к. вы не спрашивали его, а только проверить то собсна и писать не буду...малоли сами хотите к нему придти)
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180853
Demon9151
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тву...я как алкаш))) самый правый НУЛЕВОЙ бит) тогда правильно
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180919
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прибавить единицу, только и всего
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180920
Demon9151
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечприбавить единицу, только и всего
Or необходим...подумайте сами почему!
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180923
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Demon9151Яростный Мечприбавить единицу, только и всего
Or необходим...подумайте сами почему!В формулировке задачи не сказано , что остальные биты обязательно должны остаться без изменение. Главное, чтоб искомый бит стал единицей. :)
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180924
Demon9151
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечDemon9151Яростный Мечприбавить единицу, только и всего
Or необходим...подумайте сами почему!В формулировке задачи не сказано , что остальные биты обязательно должны остаться без изменение. Главное, чтоб искомый бит стал единицей. :)

В поставленной задаче действительно не сказано...но всёже or избавит от щепетильных моментов при условии если все биты заняты единицами .
...
Рейтинг: 0 / 0
Логическая задачка...
    #36180927
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Demon9151В поставленной задаче действительно не сказано...но всёже or избавит от щепетильных моментов при условии если все биты заняты единицами .Это да.
Просто я где-то раньше видел такую задачку, и там вроде говорилось о желательности самого простого варианта при данной формулировке...
...
Рейтинг: 0 / 0
Логическая задачка...
    #36182267
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужно в 1 установить самый правый бит, то битовое отрицание источника not. Это если неважное содержимое самого источника. Если нужно по условию обеспечить сохранность остальных двоич. разрядов, то банально проход по всем битам числа начиная справа без цикла, но с количествоим if then равным числу битов, т.е. банальное раскрытие цикла, только при условии, что искомое число ограничено размером регистра.
...
Рейтинг: 0 / 0
Логическая задачка...
    #36182451
Demon9151
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикЕсли нужно в 1 установить самый правый бит, то битовое отрицание источника not. Это если неважное содержимое самого источника. Если нужно по условию обеспечить сохранность остальных двоич. разрядов, то банально проход по всем битам числа начиная справа без цикла, но с количествоим if then равным числу битов, т.е. банальное раскрытие цикла, только при условии, что искомое число ограничено размером регистра.

Это шутка такая?) или вы как я посчитали правый за левый...речь идёт про самый нижний нулевой бит...а не самый верхний...и предложенная вами реализация не очень скажем красива)
...
Рейтинг: 0 / 0
Логическая задачка...
    #36182578
dgggfhgfjh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
x = x |  1 
...
Рейтинг: 0 / 0
Логическая задачка...
    #36182769
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dgggfhgfjh,
это самый правый бит а не самый правый нулевой
...
Рейтинг: 0 / 0
Логическая задачка...
    #36182854
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Demon9151студентикЕсли нужно в 1 установить самый правый бит, то битовое отрицание источника not. Это если неважное содержимое самого источника. Если нужно по условию обеспечить сохранность остальных двоич. разрядов, то банально проход по всем битам числа начиная справа без цикла, но с количествоим if then равным числу битов, т.е. банальное раскрытие цикла, только при условии, что искомое число ограничено размером регистра.

Это шутка такая?) или вы как я посчитали правый за левый...речь идёт про самый нижний нулевой бит...а не самый верхний...и предложенная вами реализация не очень скажем красива)

Отнюдь это не шутка, это моя ошибка:) Значит ответ уже дан в начале топика.
...
Рейтинг: 0 / 0
Логическая задачка...
    #36182932
MesserShmit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
студентикDemon9151студентикЕсли нужно в 1 установить самый правый бит, то битовое отрицание источника not. Это если неважное содержимое самого источника. Если нужно по условию обеспечить сохранность остальных двоич. разрядов, то банально проход по всем битам числа начиная справа без цикла, но с количествоим if then равным числу битов, т.е. банальное раскрытие цикла, только при условии, что искомое число ограничено размером регистра.

Это шутка такая?) или вы как я посчитали правый за левый...речь идёт про самый нижний нулевой бит...а не самый верхний...и предложенная вами реализация не очень скажем красива)

Отнюдь это не шутка, это моя ошибка:) Значит ответ уже дан в начале топика.

Ясн...ну я сначала тоже прочитал и по невнимательности или мнимой очевидности подумал что нужно самый верхний(левый) бит установить в единицу)
...
Рейтинг: 0 / 0
Логическая задачка...
    #36182978
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MesserShmitстудентикDemon9151студентикЕсли нужно в 1 установить самый правый бит, то битовое отрицание источника not. Это если неважное содержимое самого источника. Если нужно по условию обеспечить сохранность остальных двоич. разрядов, то банально проход по всем битам числа начиная справа без цикла, но с количествоим if then равным числу битов, т.е. банальное раскрытие цикла, только при условии, что искомое число ограничено размером регистра.

Это шутка такая?) или вы как я посчитали правый за левый...речь идёт про самый нижний нулевой бит...а не самый верхний...и предложенная вами реализация не очень скажем красива)

Отнюдь это не шутка, это моя ошибка:) Значит ответ уже дан в начале топика.

Ясн...ну я сначала тоже прочитал и по невнимательности или мнимой очевидности подумал что нужно самый верхний(левый) бит установить в единицу)

А левый бит был был интереснее...)
...
Рейтинг: 0 / 0
Логическая задачка...
    #36182996
Demon9151
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикMesserShmitстудентикDemon9151студентикЕсли нужно в 1 установить самый правый бит, то битовое отрицание источника not. Это если неважное содержимое самого источника. Если нужно по условию обеспечить сохранность остальных двоич. разрядов, то банально проход по всем битам числа начиная справа без цикла, но с количествоим if then равным числу битов, т.е. банальное раскрытие цикла, только при условии, что искомое число ограничено размером регистра.

Это шутка такая?) или вы как я посчитали правый за левый...речь идёт про самый нижний нулевой бит...а не самый верхний...и предложенная вами реализация не очень скажем красива)

Отнюдь это не шутка, это моя ошибка:) Значит ответ уже дан в начале топика.

Ясн...ну я сначала тоже прочитал и по невнимательности или мнимой очевидности подумал что нужно самый верхний(левый) бит установить в единицу)

А левый бит был был интереснее...)

Полностью согласен :)
...
Рейтинг: 0 / 0
Логическая задачка...
    #36203687
greenly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Demon9151,

Если не трудно, напишите решение.
Конечно, для случая, когда все остальные биты должны остаться неизменными.
Спасибо.
...
Рейтинг: 0 / 0
Логическая задачка...
    #36205205
Igor Vitaliev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x = x << 1 | 1
оно же
x = x RCL 1 OR 1
...
Рейтинг: 0 / 0
Логическая задачка...
    #36205252
G u e st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x = x | (x+1)
...
Рейтинг: 0 / 0
Логическая задачка...
    #36206987
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x = (x >> 1) << 1 + 1 (для положительных, для отрицательных подумать надо)
или x = ( x >> 1) << 1 | 1
...
Рейтинг: 0 / 0
Логическая задачка...
    #36207031
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, конечно же неверное решение вначале приводит автор, поскольку будут изменяться другие биты, короме установки последнего. Если сказано установить какой-то бит - это автоматически подразумевает оставлять все другие без изменения, в противном случае может быть засчитано решение А := 1, что абсурдно.
Можно так:
A := (A div 2) * 2 + 1;
...
Рейтинг: 0 / 0
Логическая задачка...
    #36207458
topic11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, народ, а как насчет левого бита? мож кто придумает?
вот пример 1010011101
самы левый нуль нужно установить в 1
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Логическая задачка...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]