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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
dezdimon
7 / 7 / 0
Регистрация: 26.10.2010
Сообщений: 57
29.03.2012, 12:24     Перевод с двоичной системы в ASCII #1
Есть последовательность 01010111101101010101101111011 ( к примеру ), как перевести эту последовательность в ascii коды ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
29.03.2012, 15:56     Перевод с двоичной системы в ASCII #2
Последовательность массивом задается?
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
29.03.2012, 16:03     Перевод с двоичной системы в ASCII #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     Перевод с двоичной системы в ASCII #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
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.03.2012, 16:27     Перевод с двоичной системы в ASCII #5
dezdimon, собери биты в байты и приведи к
C++
1
char *
.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
29.03.2012, 16:27     Перевод с двоичной системы в ASCII #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  [ТС]     Перевод с двоичной системы в ASCII #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     Перевод с двоичной системы в ASCII #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  [ТС]     Перевод с двоичной системы в ASCII #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
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
29.03.2012, 16:47     Перевод с двоичной системы в ASCII #10
а ты не пробовал с клавиатуры вводить не букву, а число?
То что ты показал - ввод с клавиатуры cin - это клава, а не твой файл.
твой файл это in , а не cin !!!
C++
1
in >> ch
Вот так надо писать
dezdimon
7 / 7 / 0
Регистрация: 26.10.2010
Сообщений: 57
29.03.2012, 16:52  [ТС]     Перевод с двоичной системы в ASCII #11
Не знал что можно так считывать in >> ch;
Но ошибку выдает... ( на ch, atoi(ch)
'atoi' : cannot convert parameter 1 from 'char' to 'const char *'
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2012, 16:52     Перевод с двоичной системы в ASCII
Еще ссылки по теме:

C++ Перевод из двоичной системы счисления в десятичную
C++ Перевод из двоичной системы счисления в десятичную
Перевод из двоичной системы счисления в десятичную C++

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

Или воспользуйтесь поиском по форуму:
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
29.03.2012, 16:52     Перевод с двоичной системы в ASCII #12
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а ты не пробовал с клавиатуры вводить не букву, а число?
То что ты показал - ввод с клавиатуры cin - это клава, а не твой файл.
твой файл это in , а не cin !!!
C++
1
in >> ch
Вот так надо писать
блин, да, хотел написать in, а написал cin
Yandex
Объявления
29.03.2012, 16:52     Перевод с двоичной системы в ASCII
Ответ Создать тему
Опции темы

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