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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Childhood
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 4
#1

Выписать четные биты - C++

04.11.2012, 14:20. Просмотров 615. Ответов 0
Метки нет (Все метки)

Рассматривая исходный файл как последовательность битов, записать в новый файл только четные биты (должна получиться последовательность из нулей и единиц).
Вот здесь код записи в файл, и перевода в двоичную систему, вот только не знаю, как выписать четные биты:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include "stdafx.h"
#include "file.h"
 
using namespace std;
 
FILE *f1,*f2;
Chetnie::Chetnie()//инициализация переменных
{
    txt=".txt";
    dat=".dat";
    nameIn=0;
    nameOut=0;
}
void Chetnie::setFname(char* fname)//ввод имени для 2ух файлов тхт и дат
{
    delete [] nameIn;
    delete [] nameOut;
    nameIn=new char[strlen(fname)+4];
    nameOut=new char[strlen(fname)+5];
    strcpy(nameIn,fname);
    strcpy(nameOut,fname);
    strcat(nameIn,txt);
    strcat(nameOut,dat);
}
void Chetnie::openText()//попытка открытия файла 1
{
    f1=fopen(nameIn,"r");
    if (f1==NULL) 
    {
        cout<<"Невозможно открыть файл\n"; 
        system("pause>>void");
        exit(0);
    }
    else
    {
        cout << "Открываем файл.......";
    }
}
void Chetnie::newText() //открытие файла 2
{
    f2=fopen(nameOut,"w");
}
void Chetnie::Changes() //запись во второй файл данных
{
    int c,q=0,i=0,mas[100],j=0,qa=0,mas1[100],mas2[100],mas3[100],w=0;
    char str[100],str1[100],str2[100];
    while((c=fgetc(f1)) != EOF) 
    {
        str[q]=c;
        str1[q]=c;
        str2[q]=c;
        q++;
    //  fputc(c, f2);
    }
    if(q==0)
    {
        cout<<"\nФайл пуст!";
       // system("pause>>void");
        //exit(0);
    }
    else
    {
        fprintf(f2,"================Изначальная строка================\n\n");
        for(i=0;i<q;i++)
        {
            fputc(str[i], f2);
        }
 
        fprintf(f2,"\n\n================В двоичной========================\n\n");
        for(int i=0;i<q;i++)
        {
            while(str[i]!=0)
            {
                if(str[i]%2==1)
                {
                    mas[j]=1;
                }
                else
                {
                    mas[j]=0;
                }
            j++;
            qa++;
            str[i]/=2;  
            }
            for(j=qa-1;j>=0;j--)
            {
                fprintf(f2,"%d ",mas[j]);
            }
            fprintf(f2,"\n\n");
            qa=0;
            j=0;
        }
}
void Chetnie::closeFiles()//закрытие файлов 1 и 2
{
    fclose(f1);
    fclose(f2);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2012, 14:20     Выписать четные биты
Посмотрите здесь:

Поменять местами четные и нечетные биты - C++
прошу помощи, код ниже, на выходе получаю 01011010 в чем ошибка? #include&lt;iostream&gt; #include&lt;string&gt; #include&lt;cstring&gt; ...

Сделать четные биты равными нечетным и наоборот - C++
нужна помощь с задачей. Используя битовые операций в числе типа unsigned int сделать так, чтобы четные биты стали равны нечетным, а...

Выписать все четные элементы массива и переписать их в другой массив - C++
массив получен, надо выписать все четные числа массива и переписать их в еще один массив благодарю за помощь

Переставить в строке все элементы из нечетных позиций на четные, а четные на нечетные - C++
В квадратном массиве содержатся как отрицательные, так и положительные элементы. Если среднее арифметическое в строке массива по модулю...

Переставить в строке все элементы матрицы из нечетных позиций на четные, а четные на нечетные, по условию - C++
Доброго времени суток. Прошу помощи решить задачку к экзамену, задача звучит так: Поиск не помог, а изучать катастрофически не...

биты - C++
помогите пожалуйста написать программу которая переведет натуральное число в двоичною систему исчесления и выведет на экран

Задача на биты. - C++
Здраствуйте. С++ начал изучать недавно. И возникла проблема с решением задачи на биты. Вот собственно сама задача. Пока я выучил только...

Выписать отрицательные элементы из матрицы - C++
Просматривая матрицу построчно, вывести на печать первые 3 отрицательных элемента. #include &lt;iostream&gt; #include &lt;ctime&gt; using...

Инвертировать биты числа - C++
установить в числе 347 биты если они не установлены,а если установлены снять

Задача про биты - C++
Написать функцию, которая возвращает число, полученное из числа X,в котором все розряды, расположенные правее центральной позиции, заменены...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru