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

Запись в файл с битовым сдвигом. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составьте программу, которая позволяет автоматизировать счет http://www.cyberforum.ru/cpp-beginners/thread199865.html
Задание: Составьте программу, которая позволяет автоматизировать счет на приобретение процессоров. Перемещение по таблице должно осуществлять- ся по нажатию клавиш стрелок, выбранное поле выделяться цветом фона, ввод нового значения осуществляется в строке под таблицей, вычисление сумм и ко- личества – после нажатия на клавишу «Enter» при выбранном поле «Всего по счету», то есть поле должно...
C++ массив помогите доделать Добавлено через 3 минуты поможіть завдання доробити...саме завдання майже зробив треба тільки впорядкувати його так щоб спочатку стояли всі додатні числа, 0 теж рахуються як додатні,а потім від"ємні ось те що вже зробив #include<iostream.h> #include<math.h> int main() { float N={2,-5,7,4,-3,8,3,5,0,-7,6,-1,0},d; http://www.cyberforum.ru/cpp-beginners/thread199864.html
C++ Не могу найти ошибку
Задание: Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащих хотя бы один положительный элемент. Интерпретатор: Microsoft Visual Studio 2008 То что мы собрали: #include <iostream> #include <stdio.h> #include <math.h> using namespace std; int main ()
Есть ли в MVStudio С# язык С++? C++
Скачал среду программирования Microsoft Visual Studio С#, запустив файл vcssetup.exe. Мне нужна была среда для разработки на С++, но после того, как программа скачала из сети и установилась, то оказалось, что это язык С#. Нигде в этой прогамме не смог найти, как создать проект на языке С++. Неужели напрасно скачал, посоветуйте, пожалуйста, что делать!
C++ Разбиение программы на функции http://www.cyberforum.ru/cpp-beginners/thread199511.html
Надо разбить задачу на функции, чтобы хотя бы присутствовала 1 функция, загвоздка в динамической переменной и как её 1 раз объявивши и задавши ей определенное значение, оперировать ей дальше. Вот собственно листинг, на нем отмечено какой кусок кода надо запихнуть в функцию: #include "stdafx.h" #include <conio.h> #include "iostream" #include <time.h> using namespace std;
C++ С++ класс, ошибка в методах Итак, вот пишу прогу #include <stdio.h> #include <string> #include "stdafx.h" #include "fstream" #include "conio.h" #include "math.h" #include "iostream" using namespace std; подробнее

Показать сообщение отдельно
Tramtararam
1 / 1 / 0
Регистрация: 26.11.2010
Сообщений: 21
29.11.2010, 16:28  [ТС]     Запись в файл с битовым сдвигом.
Цитата Сообщение от MathewSun Посмотреть сообщение
У тебя есть полбайта ненужной информации и 19,5 байт нужной.
Нужно сместить эти 19,5 вначало.
1 Берёшь первый байт делаешь сдвиг на 4 влево.
2 Берёшь второй байт, копируешь первые четыре бита в последние четыре бита первого байта.
Далее по циклу:
1 Делаешь сдвиг во втором байте на 4 бита влево.
2 Копируешь первые 4 бита третьего байта в последние четыре бита 2го байта.

и т.д.
до своего 20го байта.

сдвиг делаешь a[i] = a[i] << 4;
сокращённо это пишется a[i] <<= 4;
копирование битов к сожалению не помню как делается, поэтому предлагаю сложную и уверен что не самую правильную но рабочую реализацию:
обнуляешь крайние 4 бита вот так: a[i] = a[i] & 240; // 240 = 0b11110000
дальше берёшь временную переменную char d;
d = a[i+1]; //копируешь в неё следующий байт
d = d >>4; //сдвигаешь в ней биты вправо
d = d & 15; //15 = 0b00001111 таким образом ты обнулишь первые четыре бита (возможно это делать не нужно, так как после смещения ">>" на 4 бита , первые 4 бита и так станут нулевыми, но на всякий случай..
теперь у тебя в переменной a[i] нужные первые 4 бита и в переменной d нужные крайние 4 бита.
складываем это и сохраняем в a[i].
a[i] = a[i] & d;

Ура! В переменной a[i] лежит нужный тебе байт.
переходишь к следующему шагу массива, увеличиваешь i.
и так до 20ти.
с тебя пиво!

С меня пиво, дружище))) Спасибо!!!
 
Текущее время: 13:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru