3 / 3 / 3
Регистрация: 23.06.2015
Сообщений: 38
|
|
1 | |
Где и когда уместно применять операции << (сдвиг влево) и >> (сдвиг вправо)?02.08.2016, 17:10. Показов 3983. Ответов 15
Метки нет Все метки)
(
Кто может привести пример , когда нужно использовать операции:
1) << сдвиг влево 2) >> сдвиг вправо
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
02.08.2016, 17:10 | |
Ответы с готовыми решениями:
15
Культура оформления кода: что такое enum? Где, когда и для чего уместно применять этот тип? Побитовый сдвиг влево и вправо Циклический сдвиг массива влево и вправо Осуществить сдвиг влево/ вправо элементов |
19 / 29 / 13
Регистрация: 09.02.2016
Сообщений: 230
|
||||||
02.08.2016, 22:02 | 3 | |||||
при умножении и делении на 2
0
|
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
|
||||||
02.08.2016, 22:21 | 4 | |||||
Сдвиг влево передвигает все биты числа влево, т.е. умножает на 2. Вправо, соответственно, делит. Из практических примеров:
0
|
02.08.2016, 23:21 | 5 | |||||
Когда битовая маска набирается из отдельных бит, каждый из которых отвечает за какой-то флаг, то сплошь и рядом в сях и ассемблерах пишут:
0
|
2548 / 1207 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
02.08.2016, 23:40 | 6 |
Заниматься бито..твом, когда на компьютерах i3-ие процессоры и по 8ГБ ОЗУ....
![]()
1
|
858 / 447 / 112
Регистрация: 06.07.2013
Сообщений: 1,494
|
||||||
03.08.2016, 17:47 | 7 | |||||
для вычисления коллизий по битовой маске все таки еще можно использовать
установка флагов например, точнее их инициализация;
0
|
04.08.2016, 07:11 | 12 | |||||
Почти всюду в низкоуровневых функциях: хэширование, шифрование, сжатие данных (т.е., практически вся мультимедия), математические библиотеки (a la FFT и прочее DSP), построение защит, оптимизация целочисленных вычислений итп.
из исходного кода AES
0
|
Одессит
|
|
04.08.2016, 12:26 | 13 |
С такими рассуждениями, тогда лучше на джаве программировать, там логика - проще купить новую планку памяти, чем улучшить код.
Делал недавно проект для одной компании. Суть была в том, что есть некие приборы (железные ящики с 20-25 элементами управления (по-разному), у которых есть два значения вкл и вкл). Ящики стоят удалённо в глухомане и связь с оператором идёт через интернет gsm и не всегда стабильно. Так вот ящику нужно всего лишь передать одно целое число, где каждый бит будет означать соответствующий элемент и в зависимости от 1 или 0 - вкл или выкл.
0
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
||||||
04.08.2016, 12:41 | 14 | |||||
Надо было битовый массив, представленный как байтовый массив (27 бит - 4 байта, например), скопировать в другой битовый массив (поболее) начиная с заданной позиции, т.е. со смещением. Смещение кратно 8-ми - memcpy, иначе пляски со сдвигами, масками и побитовыми операциями.
Кликните здесь для просмотра всего текста
например
Использовать сдвиги как замену умножения/деления - преждевременная оптимизация.
0
|
Модератор
![]() ![]() |
||||||
04.08.2016, 13:01 | 15 | |||||
Сдвиги эффективны как замена умножения/деления на степень двойки (это быстрее умножения). Вот код, в котором перевод десятичного числа в int-форму выполнен без умножения на 10:
0
|
0 / 0 / 0
Регистрация: 05.08.2016
Сообщений: 5
|
|
05.08.2016, 13:45 | 16 |
На собеседованиях очень любят спрашивать))
0
|
05.08.2016, 13:45 | |
Помогаю со студенческими работами здесь
16
Циклический сдвиг целого числа на n разрядов влево и вправо Циклический сдвиг битов в байте влево или вправо Циклический сдвиг односвязного списка, организованного структурами, на N элементов вправо/влево
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |