Форум программистов, компьютерный форум CyberForum.ru

Битовый сдвиг массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Калкулятор http://www.cyberforum.ru/cpp-beginners/thread1083882.html
Ребята помогите даны 2 числа надо написать программу которая делит, умножает, прибавляет и отменяет, типа калкулятор простой
C++ Сформировать одномерный массив целых чисел, используя датчик случайных чисел Сформировать одномерный массив целых чисел, используя датчик случайных чисел.Распечатать полученный массив. Удалить 5 первых элементов массива. Добавить в конец массива 3 новых элемента. Распечатать массив http://www.cyberforum.ru/cpp-beginners/thread1083874.html
C++ Составьте программу, которая создает очередь/стек.(Реализация работы с динамическими структурами)
Добрый день) Помогите вновь, пожалуйста, решить задачки :scratch:: 1. Составьте программу, которая создает очередь из произвольного количества элементов. Информационная часть динамического элемента должна состоять из двух целых чисел. Организуйте обработку каждого элемента: печать целых чисел из информационной части и квадрат их суммы. 2. Составьте программу, которая создает стек из...
В квадратной матрице X(n,m) найти Максимальный и минимальный элементы C++
В квадратной матрице X(n,m) найти Максимальный и минимальный элементы. Поэлементно поменять местами строку с максимальным элементом со столбцом с минимальным элементом.
C++ Описать структуру "Друг" http://www.cyberforum.ru/cpp-beginners/thread1083848.html
Всем привет! Помогите привести в нормальный вид программу .Надо описать структуру с именем DRUG ,содержащую след.поля: -фамилия и инициалы -дата рождения (массив из трех чисел) -номер телефона Напишите программу , выполняющую след.действия: -ввод с клавиатуры данных в массив , сост. из пяти элементов типа DRUG -вывод на экран информации о людях ,чей год рождения больше значения , введенного...
C++ запись структуры в файл #include <cstdio> #include <fstream> #include <iostream> using namespace std; struct MyStruct { char name; char surename; char town; подробнее

Показать сообщение отдельно
MartinSeptim
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 19
28.01.2014, 19:27     Битовый сдвиг массива
Помогите разобраться с сдвигом влево (выравниванием до начала байта) данных. Задача заключается в том что есть некий массив, в котором сдвинуты на n (где n не больше 7 включительно) бит. Эти данные нужно выровнять до начала байта. Т.е. допустим есть сдвинутые на 1 бит: 0111 1011 0000 0000- 7B из которых нужно получить F6 - 1111 0110 0000 000... т.е. перенести из следующего байта 1 (или n )бит в предыдущий. Как лучше это сделать? Мое решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char * bitShift (char * memblockSource, int bit) {
 
            char bytes;
            char temp = '0';
            for (int i = size; i>0; i--)
            {
                bytes = memblockSource[i-1];
                char result = bytes << bit;
                char temp_val = ((result + temp) & 0xFF);
                temp = result >> 8;
                memblockDest[i-1] = temp_val;
 
            }
 
            return memblockDest;
        }
Но это решение неверно сдвигает данные. В чем моя ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru