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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
dezdimon
7 / 7 / 0
Регистрация: 26.10.2010
Сообщений: 57
#1

Перевод с двоичной системы в ASCII - C++

29.03.2012, 12:24. Просмотров 2418. Ответов 11
Метки нет (Все метки)

Есть последовательность 01010111101101010101101111011 ( к примеру ), как перевести эту последовательность в ascii коды ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2012, 12:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод с двоичной системы в ASCII (C++):

Перевод из двоичной системы счисления в десятичную - C++
Помогите пожалуйста перевести число из 2-ой сс в 10 сс. Буду очень благодарен:)

Перевод из двоичной системы счисления в десятичную - C++
Программа не работает для отрицательных чисел. Помогите найти ошибку. #include "stdafx.h" #include <iostream> #include <time.h> ...

Перевод числа из двоичной системы в десятичную - C++
Помогите написать программу для перевода из 2 в 10. Если число делится на 3, то вывести и результат деления

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

Перевод из двоичной системы счисления в десятичную - C++
Я создал программу, но вот она выдает размерность введенного массива, вместо десятичного числа. Ошибки я найти не могу. Вот сам код: ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
29.03.2012, 15:56 #2
Последовательность массивом задается?
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
29.03.2012, 16:03 #3
Цитата Сообщение от dezdimon Посмотреть сообщение
Есть последовательность 01010111101101010101101111011 ( к примеру ), как перевести эту последовательность в ascii коды ?
А последовательность как задана? Это строка? массив?
Вобщем начинай писать программу в таком духе:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
enum bits{
clr=0;
set=1;
};
int main(){
 char data[SIZE];
 bits  bitbuf[SIZE*8];//1,0
 int* cur;
 int i, j;
 loadbitbuf(bitbuf);
 cur=bitbuf;
 for (i=0; i<SIZE; i++){
 data[i]=0;
  for (j=0; j<8; j++){
    data[i]+=(*cur)*(1<<j);
    cur++;
  }
 }
 return 0;
}
Я нигде не ошибся?
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
29.03.2012, 16:23 #4
Если массив:
C++
1
2
3
4
5
6
7
8
int bin[] = { 0, 1, 0, 1, 0, 1, 1, 1 };
int length = sizeof(binary)/sizeof(int);
int dec = 0;
 
for (int i = 0; i < length; i++)
        dec = dec * 2 + bin[i];
 
char ch = (char)dec;
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.03.2012, 16:27 #5
dezdimon, собери биты в байты и приведи к
C++
1
char *
.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
29.03.2012, 16:27 #6
Нет, лучше так:
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
#include <iostream> 
#include <fstream>
#include <time.h>
#define SIZE 10
using namespace std;
enum bits{
clr=0,
set=1
};
void loadbitbuf(bits* bitbuf){
int i;
for (i=0; i<SIZE*8; i++)
   if (rand()%2) bitbuf[i]=set;
   else bitbuf[i]=clr;
}
int main(){
 char data[SIZE];
 bits  bitbuf[SIZE*8];//1,0
 bits* cur;
 int i, j;
 srand(time(NULL));
 loadbitbuf(bitbuf);
 cur=bitbuf;
 for (i=0; i<SIZE; i++){
 data[i]=0;
  for (j=0; j<8; j++){
    data[i]+=(*cur)*(1<<j);
    cur++;
  }
 }
 cout<<"random bits:"<<endl;
 for (i=0; i<SIZE*8; i++)
     cout<<bitbuf[i];
 cout<<endl<<"character symbols:"<<endl;
 for (i=0; i<SIZE; i++)
     cout<<data[i]<<" ";
 cin>>data[0];
 return 0;
}
dezdimon
7 / 7 / 0
Регистрация: 26.10.2010
Сообщений: 57
29.03.2012, 16:28  [ТС] #7
Мне нужно генерировать 0 и 1 в файл, потом вытянуть последовательность, и сохранить в файл ( ascii формат ).

С переменными запутался ....

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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
 
using namespace std; 
 
int main()
{
        /*------Генерация ПВП---------*/
        FILE *PVPFILE;
        PVPFILE = fopen("d:\\pvp.dat", "w+");
 
        int i;
        char pvpin; 
        long int size;
        cout << "Vvedite razmer pvp ";
        cin >> size;
        size = size * 1024; // С Байт в Кбайт
 
        for( i=0; i<size; i++ )
        { pvpin = 0 + rand() % 2;
          fprintf( PVPFILE, "%d", pvpin); 
        }
        /*------------------------*/
 
        fseek( PVPFILE, 0, SEEK_SET); // В начало файла
        
        char rslos[104876];
        int ss;
        for ( i = 0; i<size; i++ )
        { rslos[size] = fgetc(PVPFILE); // Считываем из файлы числа
        }
 
        fclose(PVPFILE);
        return 0;
}
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
29.03.2012, 16:33 #8
dezdimon, вытягивай:
C++
1
2
3
4
5
6
ifstream in("input.txt");
char ch;
in >> ch;
int binary = atoi(ch);
 
//Потом заполняешь массив
и читаешь мой коммент
dezdimon
7 / 7 / 0
Регистрация: 26.10.2010
Сообщений: 57
29.03.2012, 16:44  [ТС] #9
atoi(ch) - ругается на ch, Visual studio

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string.h>
 
using namespace std; 
 
int main()
{
    ifstream in("d:\\input.txt");
    char ch;
    cin >> ch;
    int binary = atoi(ch);
}
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
29.03.2012, 16:47 #10
а ты не пробовал с клавиатуры вводить не букву, а число?
То что ты показал - ввод с клавиатуры cin - это клава, а не твой файл.
твой файл это in , а не cin !!!
C++
1
in >> ch
Вот так надо писать
dezdimon
7 / 7 / 0
Регистрация: 26.10.2010
Сообщений: 57
29.03.2012, 16:52  [ТС] #11
Не знал что можно так считывать in >> ch;
Но ошибку выдает... ( на ch, atoi(ch)
'atoi' : cannot convert parameter 1 from 'char' to 'const char *'
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
29.03.2012, 16:52 #12
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а ты не пробовал с клавиатуры вводить не букву, а число?
То что ты показал - ввод с клавиатуры cin - это клава, а не твой файл.
твой файл это in , а не cin !!!
C++
1
in >> ch
Вот так надо писать
блин, да, хотел написать in, а написал cin
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2012, 16:52
Привет! Вот еще темы с ответами:

Перевод вещественного числа из двоичной системы в десятичную c++ - C++
У меня есть число long double,например 15.375. я его перевёл в двоичную систему:010000000000001011110110000....00 Как перевести...

Рекурсивный перевод из двоичной системы счисления в десятичную - C++
Вот мой код: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; int f(int Num) { static int...

Перевод из двоичной системы счисления в десятичную с плавающей запятой - C++
Помогите найти ошибки в коде. Выводит не верный результат при введенных данных (11.1 или 11.01 или 11.001 и тд) неверность заключается в...

Перевод числа из двоичной системы в десятичную или наоборот - C++
Нужно написать программу переводящую числа из двоичной в десятеричную систему счисления и наоборот. (Я пока что новенький искал чё-т не...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.03.2012, 16:52
Ответ Создать тему
Опции темы

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