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

Побитовое чтение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не вызывается нужный элемент массива по значению управляющей переменной в цикле for http://www.cyberforum.ru/cpp-beginners/thread628259.html
Вот часть кода : for(int i=0; i < 5; i++){ cout << "Этот объект " << shapes->getName() << "\n"; cout << "Площадь равна " << shapes->area() << "\n"; cout << "\n"; } Проблема в том, что выполняется 5 итераций, но при этом вызывается всегда первый элемент массива. Когда устанавливаю вручную цифру, то без проблем можно вывести любой элемент этого массива, но и если вывести в этом же...
C++ Супер-быстрый перебор Используя минимальное количество библиотек(Вместо iostream - stdio.h) сделать рекурсивный перебор: Найти количество N-значных натуральных чисел, сумма цифр у каждого из которых равняется M. N и M заданные натуральные числа. Технические условия Входные данные. В строке файла записаны значения N и M. (1<=N<=100, 1<=M<=900). Выходные данные. http://www.cyberforum.ru/cpp-beginners/thread628258.html
Конкурс(поиск простых чисел) C++
Я тут подумал, посмотрел по теме Hello world'a как всем нравится находить изощренные способы.Так вот - задание на засыпку: написать программу, вычисляющую простые числа от 1 до 300000.Программа ДОЛЖНА работать за 6 секунд.Обьем памяти неограничен.За 6 сек должна работать на процессоре примерно таком - 2 ядра по 3.2 ггц каждое! Ну что, кто напишет?))) Кто напишет, тому спасибо поставлю)
Переход на заданную строку C++
вот хочу считать последнюю строку из файла такием раком fstream str("base.txt",ios_base::in|ios_base::out); str.seekp(0, ios::end); char* words; str >> words; str >> words; str >> words; cout << words;
C++ Вывести на экран значение элемента... http://www.cyberforum.ru/cpp-beginners/thread628240.html
Работа с квадратными массивами В задаче рассматривается двумерный массив с одинаковым количеством строк и столбцов; такой массив называют квадратным. Задача: Известен номер столбца, на котором расположен элемент побочной диагонали квадратного массива. Вывести на экран значение этого элемента.
C++ Найти все десятизначные числа с неповторяющимися цифрами, при делении которых на 9 получается симметричное частное Здравствуйте, друзья. Вот задача: Найти все десятизначные числа с неповторяющимися цифрами, при делении которых на 9 получается симметричное частное. Например: 4938271605 / 9 = 548696845 (таким же свойством обладают числа 2165904378/9=2406556042 или 2934815607/9=326090623 и др.) Вот код: #include <iostream> using namespace std; void main() { double Sc=1000000000, Otv; подробнее

Показать сообщение отдельно
Khelleos
37 / 37 / 7
Регистрация: 13.05.2010
Сообщений: 283
Записей в блоге: 1
26.07.2012, 01:08  [ТС]     Побитовое чтение
Цитата Сообщение от canopen Посмотреть сообщение
Нет, не получите. Вам сначала нужно будет сдвинуть 8 бит на пять разрядов влево, а 5 бит на три разряда вправо. Прочитали бы все-таки что-нибудь на тему битовых операций.
Точно, второй байт я сдвинул на 3 разряда вправо, а вот первый байт забыл сдвинуть влево на 5 разрядов.

Добавлено через 12 часов 30 минут
Хочу уточнить одну вещь, файл длиной 16 бит, структура файла следующая
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct file
{
   unsigned m1 : 1;
   unsigned m2 : 2;
   unsgined m3 : 13
};
 
int main()
{
   int infile = open(NAME, O_RDONLY);
   
   char buf[2];
   read(fin, buf, 2);
 
   file hdr;
   hdr.m1 = (buf[0] & 1) != 0;  //получаю первый бит 
   hdr.m2 = ((buf[0] & 1 << 2) << 1) + (buf[0] & 1 << 1) //получаю 2-ой и 3-ий бит
   hdr.m3 = ((buf[0] >> 3) << 8) + buf[1]; //получаю 13 бит
   
   return 0;
}
Я все правильно сделал? А это я не уверен правильно ли я получаю поле длинной 13 бит.

Добавлено через 12 минут
Напутал, вот так должно быть правильно
C++
1
2
3
hdr.m1 = (buf[0] & 1);  //получаю первый бит 
hdr.m2 = ((buf[0] & (1 << 2)) + (buf[0] & (1 << 1))) >> 1 //получаю 2-ой и 3-ий бит
hdr.m3 = ((buf[0] >> 3) << 8) + buf[1]; //получаю 13 бит
да?
 
Текущее время: 07:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru