Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 12

Не могу разобраться с битовыми операциями

12.11.2016, 15:05. Показов 1649. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано

00110100 00110111 .... в конце 00111000

что надо сделать, чтобы получить (ниже) 1ый байт (известен), 2ой байт 1 из 3

1ый байт 00110101

2й байт
01001011
01001000
01001010

подскажите какой это сдвиг? или умножение, деление? Что за операция проведена с битами? Буду очень признателен за помощь. В битах плохо разбираюсь.. Помогите чайнику.

Известно еще, что в операции по изменению битов могло принимать участие 0001 или 3 :-) А могло и не принимать..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2016, 15:05
Ответы с готовыми решениями:

Работа с битовыми операциями
Задание: Определение наличия в числе указанной битовой последовательности. Помогите разобраться с данной задачей.

Работа с битовыми операциями
Дан массив целых чисел. Составить функцию unpack Char, которая принимает целую переменную типа unsigned и распаковывает из нее два символа....

Работа с битовыми операциями
Дано целое число без знака. Реализовать алгоритм замены каждого четного бита на 0

18
Заблокирован
12.11.2016, 15:48
Я почти ничего не понял из написанного, что дано, и что получено.
Если из этих значений
Цитата Сообщение от garrygarry Посмотреть сообщение
01001011
01001000
получено 01001010, то это "и".
0
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 12
12.11.2016, 16:12  [ТС]
Есть строка состоящая из бит.

00110100 00110111 .... в конце строки 00111000

после проведенной операции (неведомо какой) первый байт стал таким 00110101 (8ой бит поменялся с 0 на 1),
второй байт может превратится в 01001011, либо в 01001000, либо в 01001010

Нужно понять, какая операция проводится с битами (исходные биты 00110100 00110111 .... в конце строки 00111000), чтобы получить 1 из 3 вариантов (можно и три варианта получить, если это возможно)


00110101 01001011
00110101 01001000
00110101 01001010


Если это И, то не могли бы чайнику обьяснить как это делается с длинной строкой бит? Буду сильно признателен!
0
 Аватар для Kukuxumushu
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
12.11.2016, 16:13
nimazzzy, это как???
01001011
&
01001000
=
01001000
1
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 12
12.11.2016, 16:30  [ТС]
Сам всю голову сломал..

Добавлено через 8 минут
Могли чтоть проделывать с битами при помощи 3 или 0001?
0
Заблокирован
12.11.2016, 16:46
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
nimazzzy, это как???
01001011
&
01001000
=
01001000
Именно так, ты угадал.

Добавлено через 4 минуты
Тьфу, ты ж, я второе число 2 раза посмотрел

Добавлено через 1 минуту
Тогда я теперь совсем не понимаю, что значит "2й байт" и три каких-то байта. Какое число получено из каких?
0
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 12
12.11.2016, 16:56  [ТС]
Было это

00110100 00110111 .... в конце 00111000

стало это

00110101 01001011

или это

00110101 01001000

или это

00110101 01001010

Добавлено через 8 минут
Хочется очень понять, что сделали с битами.. Помогите
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
12.11.2016, 17:42
garrygarry, что значит в конце?
я так понял
было 00110100 00110111 00111000
стало 00110101 01001011 00111000
0
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 12
12.11.2016, 17:51  [ТС]
да, все верно, только 00111000 можно не учитывать.. строка длинная, 00111000 в конце (думаю, вдруг сдвиги какие были, не похоже..)

просто нужно понять что делали...

было 00110100 00110111
стало 00110101 01001011

или было 00110100 00110111
стало 00110101 01001000


или было 00110100 00110111
00110101 01001010
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
12.11.2016, 18:44
было 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1
xor 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0
_______________________
стало 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1
0
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 12
12.11.2016, 19:41  [ТС]
это не совсем то..
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
12.11.2016, 19:44
garrygarry, тогда объясни путью что надо
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6811 / 2051 / 238
Регистрация: 14.12.2014
Сообщений: 4,301
Записей в блоге: 12
12.11.2016, 20:08
garrygarry, что значит "стало так или так или так"? Почему или?
Нужно найти операцию, которая может вернуть одно из 3-х значений? (типа корень из 9 = 3 и -3)
Таких операций с битами нет. Или их будет 3 штуки

А чтобы получить, к примеру, 1010 из 0101, то тут вариантов много: можно сделать not, можно сделать shl 1, можно сделать xor 1111, можно сделать and 0 or 1010, можно imul ax,ax,2 (задав 0101 в ax) и т.д.

Как сказал мановар, есть универсальная операция - xor. С её помощью можно получить любое число из любого.
Т.е. A xor B = C. Если есть A и C, то легко найти и B = A xor C.

Если надо в 2 операции, то можно то же самое сделать через and + or, т.е. (A and B1) or B2 = C. Здесь ищем так: B1 = A and C, B2 = B1 xor C.

Как вариант...
0
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 12
12.11.2016, 20:56  [ТС]
Спасибо, буду пытаться.. Отпишу результат или снова обращусь

Добавлено через 1 минуту
Хотел еще спросить? А сдвиг битовый что такое? Имеется в виду битовый сдвиг в огромном количестве битов
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6811 / 2051 / 238
Регистрация: 14.12.2014
Сообщений: 4,301
Записей в блоге: 12
13.11.2016, 11:14
Это именно то и есть. Именно сдвиг, точнее не скажешь
0011010011101001 сдвигаем влево на 1, получаем
0110100111010010 (пустоту заполняем нулями, как правило), ещё сдвигаем на 3:
0100111010010000, сдвигаем ещё на 5 влево:
1101001000000000, сдвигаем вправо на 9:
0000000001101001.
0
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 12
13.11.2016, 14:22  [ТС]
А после 9 на скока делать сдвиг?
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6811 / 2051 / 238
Регистрация: 14.12.2014
Сообщений: 4,301
Записей в блоге: 12
13.11.2016, 20:05
В каком смысле? "На скока делать сдвиг", чтобы получить... что?
Это просто примеры для понимания как работает сдвиг.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
14.11.2016, 04:46
Да успокойтесь вы. Я объясню чего хочет ТС.

У него есть длинная строка байт. Из нее он вам показывает только первых два и последний. Больше не покажет ибо страшный секрет. В строке что-то зашифровано. Какой характер имеет зашифрованная информация ТС тоже не скажет ибо опять таки страшный секрет. Что конкретно должно получится после расшифровки ТС не знает. Он знает только какой должен получится первый байт и с точностью до трех вариантов какой второй. Отсюда у ТС-а вопрос : какой алгоритм шифрования был использован и как расшифровать ? ТС полагает с чужих слов, что алгоритм простой, но и это не факт.
Прониклись ?

Добавлено через 7 минут
Вышенаписанное я уяснил из общения с ТС на том форуме куда "ушли" Mikl.
0
14.11.2016, 15:31

Не по теме:

Ethereal, да, эт я понял после этого сообщения №7 :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.11.2016, 15:31
Помогаю со студенческими работами здесь

Работа с битовыми операциями
Реализовать функции шифрования и дешифрования строк. Принцип шифрования: на четыре бита слева каждого символа нало-жить 4-ёх битную маску...

Проблема с битовыми операциями
Где-то баг...Вроде все правильно, но выводятся одни нули. Перепроверил уже раз 5. В чем ошибка? Вот задание: Составить прогу, которая...

Система уравнений с битовыми операциями
Доброе время суток, друзья! Помогите пожалуйста решить задачу: Дана система из двух уравнений, где a11, a12, a21, a22, b1, b2, x, y -...

Замена сложения и вычитания битовыми операциями
Добрый день. Было дано задание: Поменять два старших бита числа с двумя младшими битами. Реализовал я это задание таким образом,...

Перевод из десятичной системы unsigned long long в двоичную c битовыми операциями, получается странный реультат
Доброго времени суток! Нужно выразить число в двоичной системе, показав все 64 символа (unsigned long long). Важно, чтобы программа...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru