Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Битовые операции  (Прочитано 6760 раз)
0 Пользователей и 1 Гость смотрят эту тему.
homosapien
Интересующийся

de
Offline Offline

« : 20-05-2010 12:28 » 

Наверное очень просто, но не писал такого раньше. Прошу прощения в общем Улыбаюсь
Ребята, для реализации одного алгоритма мне нужно сделать след вещи - в общем,
имеется двоичное, допустим 11111 и нужно добавить в его конец 01 например, чтобы вышло 11101 (но числа всегда разные и какие именно я не знаю (в этом вся соль)).
Надеюсь объяснил понятно.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 20-05-2010 12:38 » 

11101 = (11111 & 11100) | 00001
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 20-05-2010 12:39 » 

Непонятно
111111
операция
        01
----------
111101

010100
операция
       01
---------
010101

Так?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
homosapien
Интересующийся

de
Offline Offline

« Ответ #3 : 20-05-2010 12:39 » 

но я не знаю же, какие числа там будут
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 20-05-2010 12:41 » 

т.е. ты хочешь чтоб второе число "накрывало" первое
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
baldr
Команда клуба

ru
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #5 : 20-05-2010 12:47 » 

homosapien, "числа" представлены у тебя каким типом - строкой или числом?
Как ты представишь число 01 и чем оно будет отличаться у тебя от 00001 ?
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 20-05-2010 12:51 » 

Допустим, разрядность исходного числа n, разрядность добавляемого m, тогда:

1. Сформировать битовую маску длиной n бит, в которой m младших битов нули, остальные - единицы.
2. Выполнить операцию "логическое И" над исходным числом и маской.
3. Выполнить операцию "логическое ИЛИ" над результатом шага 2 и добавляемым числом.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
homosapien
Интересующийся

de
Offline Offline

« Ответ #7 : 20-05-2010 14:52 » 

т.е. ты хочешь чтоб второе число "накрывало" первое
точно.
homosapien, "числа" представлены у тебя каким типом - строкой или числом?
Как ты представишь число 01 и чем оно будет отличаться у тебя от 00001 ?
- вероятнее всего строкой, так будет потом удобнее.
Таких маленьких чисел не будет точно.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #8 : 21-05-2010 02:58 » 

homosapien, тебе вот такое нужно, наверное?

имеется xxxxx и 000NN.

xxxxx & 11100 -> xxx00;

xxx00 | 000NN -> xxxNN;
Записан

Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #9 : 21-05-2010 03:41 » 

- вероятнее всего строкой, так будет потом удобнее.

битовые операции над строковыми представлениями это совсем не удобно.
Записан

Странно всё это....
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 21-05-2010 06:51 » 

Задача не полная и к битовым операциям она не относится
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines