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

Двоичное представление символов ASCII - C++

Восстановить пароль Регистрация
 
alexlagunov
2 / 2 / 1
Регистрация: 26.04.2014
Сообщений: 58
01.05.2014, 05:43     Двоичное представление символов ASCII #1
например дана последовательность: 0110100001101001 где h=01101000 i=01101001
] numeric=0110100001101001
как сделать что то вроде cout<<char(numeric)-ну это так для разъяснения идеи)
и программа бы выдала hi ???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2014, 05:43     Двоичное представление символов ASCII
Посмотрите здесь:

Двоичное представление типов данных C++
C++ двоичное представление
C++ Программа показывающая внутреннее двоичное представление типа данных
C++ Необходимо вывести двоичное представление числа на экран.
C++ Двоичное представление символов
Получить двоичное строковое представление целого неотрицательного числа C++
C++ Двоичное представление double
C++ Двоичное представление

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
01.05.2014, 06:57     Двоичное представление символов ASCII #2
Вот рабочий но не очень удобный вариант.
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
#include <iostream>
 
using namespace std;
 
char* numtostr(int numeric)
{
    char* buf = new char[5];
    int i = 0, j = 3;
    while(j >= 0)
    {
        char c = (char)(numeric>>(j*8));                
        if(c != 0)
        {
            buf[i] = c;
            i++;
        }        
        j--;
    }    
    buf[i]='\0';
    //cout << buf;
    return buf;
}
 
int main()
{
    int numeric = 0b0110100001101001;
    
   char* c;
   cout << (c = numtostr(numeric)) << endl;
   delete[] c;
   
   return 0;
}
alexlagunov
2 / 2 / 1
Регистрация: 26.04.2014
Сообщений: 58
01.05.2014, 07:41  [ТС]     Двоичное представление символов ASCII #3
слушай а ты не смог бы его реализовать в одной из этих программ:
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
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include <clocale>
 
using namespace std;
 
char Data[10000];
char ch;
 
void read ()
{
ch=getchar();
}
 
void main (void)
{
setlocale (LC_ALL, "Russian");
int i=1;
int S=0;
 
read();
 
while (ch!='\n')
{
Data[i]=ch;
++i;
read();
}
for (int q=1; q<i; ++q)
{
if (Data[q]=='1') S=S^q;
}
if (S==0) 
{
cout<<"Ошибок нет\n"<<"Полученные данные:\t";
 
}
else 
{
cout<<"Ошибка в бите с номером "<<S<<endl<<"Исправленные данныедвоичное представление)\t";
if (Data[S]=='1') Data[S]='0';
else Data[S]='1';
}
for (int q=1; q<i; ++q)
{
if (fmod(log((float)q)/log(2.0),1.0)<0.0000001) continue;
else 
{
cout<<Data[q];
}
}
 
fgetc(stdin);
}


\\\\\\\\\\\\\\\\\\\\\\

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
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include <clocale>
#include <conio.h>
 
using namespace std;
 
 
// буфер ввода
char input[1024];
int len;
 
int find_mistake()
{ 
int i, mistake = 0;
for (i = 0; i < len; i ++)
if (input[i] == '1')
mistake ^= i + 1;
return mistake;
}
 
 
// главная функция
int main()
{ 
int i, mistake = 0; 
char info[1024]; 
int info_pos = 0; 
int b = 1; 
 
// ввод исходных данных
printf("Enter code: "); 
scanf("%s", input); 
len = strlen(input); 
 
for (i = 0; i < len; i++)
// проверка на корректность
if (input[i] != '0' && input[i] != '1')
{ 
printf("Invalid code.\n");
return -1; 
}
 
 
// поиск ошибок
mistake = find_mistake();
if (mistake)
{ 
input[mistake - 1] ^= '0' ^ '1';
mistake = find_mistake(); 
 
if (mistake) 
{ 
printf("Invalid code.\n");
return -1; 
} 
}
 
 
// вывод результата
printf("Fixed code: %s\n", input);
for (i = 0; i < len; i++)
if (i + 1 == b)
b <<= 1;
else
info[info_pos++] = input[i];
info[info_pos] = '\0';
printf("Informational string: %s\n", info);
getch();
 
return 0;
 
}
Добавлено через 1 минуту
и еще если эта последовательность генерируется, а не задается?
Yandex
Объявления
01.05.2014, 07:41     Двоичное представление символов ASCII
Ответ Создать тему
Опции темы

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