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

работа с двоичным кодом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ дан вещественный массив http://www.cyberforum.ru/cpp-beginners/thread1030207.html
Дан вещественный массив vector <float> D5 занести в массив данные с помощью указателей, определить длину и количество положительных элементов, вывести на экран полученный массив и адреса элементов, а так же найденную сумму и количество. Еще помогите к этой задаче блок схему нарисовать, пожалуйста.
C++ "Перевести натуральное число из 8-ричной в 10-чную систему счисления" Добрый вечер) Друзья помогите пожалуйста составить программку) Условие задачи: Целое длинное число A задается в диалоговом режиме. "Перевести натуральное число из 8-ричной в 10-чную систему счисления" http://www.cyberforum.ru/cpp-beginners/thread1030194.html
C++ Считывание массива структур из файла
Массив структур выглядит так: struct spis { char fim; char fio; char nam; char otch; char num; char ul;
C++ Реализация алгоритма
Смотрите, есть функция для рисования сегмента круга: pieslice(int x, int y, int start, int end, int radius) - int start и int ende угол начала и конца. Не могу придумать как в первый раз старт был нулем, а последующие концом предыдущего . Конец ищу с помощью: end=a*koeficient. И это всё в цикле. Какие будут идеи?
C++ задачка http://www.cyberforum.ru/cpp-beginners/thread1030176.html
Помогите, пожалуйста, решить задачу. Дан двухмерный целочисленный массив А размером nхm. Известно, что среди его элементов два и только два равны между собой. Напечатать их индексы.
C++ Для целого n и действительных x и y определить значение REZULT Для целого n и действительных x и y определить значение REZULT: sin^3(x/y)*(x+y^2)+Ф(n) при x>0, y-любое число cos^2(x+y)+sin(x^2+y^2)+n! при x<0, y-любое число R1 во всех остальных случаях Ф(n) - число Фибоначчи. n! - факториал n. подробнее

Показать сообщение отдельно
ERET1K
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 14
05.12.2013, 21:42     работа с двоичным кодом
Задача не сложная но материала на ту тему Я на просторах интернета так и не нашел(
Через небольшую программку (самопальный HEX ридер) Я читаю побайтно файл и заношу в массив. Программа работает классно вот код
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <vector>
using namespace std;
 
 
int main()
{
    string $pathto;
    ifstream fin;
    vector< short int > masshex;
    
    cout << "enter path to file" << endl;
    
    getline(cin, $pathto);
    
    fin.open($pathto, ios_base::in | ios_base::binary);
    if(fin.is_open())
        cout << "\nPath is true, file is open\n";
    else{
        cout << "\nERROR opening file\n";
        return 1;
    }
    
    while(!fin.eof()){
        masshex.push_back(fin.get());
    }
    
    fin.close();
    
    cout << "size read " << masshex.size() << " bytes" << "\n";
    
    cout.unsetf(ios::dec);
    cout.setf(ios::hex);
    
    for(int i = 0; i < masshex.size(); ++i){
        if(masshex[i] <= 0x0F) cout << 0;
        cout << masshex[i] << " ";
    }
    
    cout  << endl;
    return 0;
}


теперь мне надо разобрать считанные байты таким образом:

в двоичной системе счисления получить младшие 3 разряда, и старшие пять. К примеру:
первый байт файла в двоичной системе счисления выглядит так 01100011 , мне нужно в отдельную переменную записать 011(три младшие разряда) = 3 и 01100 = 12.
потом Я уже сам буду обрабатывать эти данные.

Вообще Я пытаюсь считать управляющую программу контроллера старого станка с ЧПУ. Который спустя 20 лет сломалася. Но менять станок ещё лет 20 некто не будет, так что ответы вроде забей мне ненужны.

Попробую по конкретнее сформулировать вопрос:
Каким образом можно преобразовать значение типа int в двоичный код шириной в 8 розрядов с возможностью чтения конкретного разряда или нескольких выбранных последовательно расположенных разрядов(как в примере выше только младшие 3 или старшие 5) для дальнейшей обработки?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru