Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
1

Нужно написать программу преобразующую данные в машинный вид

24.03.2013, 10:14. Показов 2626. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать маленькую программку которая преобразует разные типы данных в машинный код (двоичной системе счисления).....
Тоесть с клавиатуры вводим слово оно преобразуется в вид который воспринимается компьютером, то есть в двоичной системе счисления....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2013, 10:14
Ответы с готовыми решениями:

Нужно написать программу которая считывает данные из текстового файла
Привет всем. Умоляю о помощи с программой. Нужно написать программу которая считывает данные из...

Написать программу преобразующую префиксную запись в инфиксную
пожалуйста, помогите, нужно написать программу преобразующую префиксную запись в инфиксную, можно...

Написать программу, преобразующую массив в алфавит английского языка
Дан массив букв, составляющих английский алфавит, но размещённых не по порядку. Написать программу,...

Написать программу, преобразующую в слове строчные буквы в прописные
Написать программу, преобразующую в слове строчные буквы в прописные. Слово ввести с клавиатуры.

29
90 / 90 / 17
Регистрация: 26.10.2012
Сообщений: 249
24.03.2013, 12:54 2
Проще говоря, тебе нужно записать данные в файл?
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
24.03.2013, 14:20  [ТС] 3
Нет...мне нужно следующее... вводиш какие либо данные нажимаешь Ентер и на экране появляется в двоичном виде...
0
90 / 90 / 17
Регистрация: 26.10.2012
Сообщений: 249
24.03.2013, 14:24 4
Прям так единицами и нулями?
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
24.03.2013, 14:53  [ТС] 5
ага... именно так еденицами и нулями...
0
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
24.03.2013, 16:11 6
работает для типов данных, у которых можно получить адекватный размер в байтах с помощью sizeof

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
#include <iostream>
using namespace std;
 
void printbyte( unsigned char x )
{
    const int bitsCount = sizeof( unsigned char ) * 8;
    const unsigned char MASK = 1 << ( bitsCount - 1 );
 
    for ( int i = 0; i < bitsCount; ++i, x <<= 1 )
        cout << ( x & MASK ? 1 : 0 );
}
 
template < class T >
void print( T x )
{
    const int bytesCount = sizeof( T );
    unsigned char *p = reinterpret_cast< unsigned char * >( &x );
 
    for ( int i = 0; i < bytesCount; ++i )
    {
        printbyte( p[ i ] );
        cout << " ";
    }
    cout << endl;
}
 
int main()
{
    int a = 5493604;
 
    print( a );
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
24.03.2013, 17:45  [ТС] 7
А для текстовых данных а не числовых такое возможно??если да то как????
0
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
24.03.2013, 18:02 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <bitset>
 
int main()
{
    std::string str;
 
    std::cout << "Enter: ";
    std::getline(std::cin, str);
 
    for (int i = 0; i < str.size(); ++i)
        std::cout << std::bitset<8>(str[i]) << ' ';
    std::cout << std::endl;
 
    system("PAUSE");
    return 0;
}
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
24.03.2013, 18:09 9
Цитата Сообщение от ya_noob Посмотреть сообщение
C++
1
const int bitsCount = sizeof( unsigned char ) * 8;
Для полноты абстракции можно использовать макрос CHAR_BIT из <climits> вместо магического 8.
1
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
25.03.2013, 06:45 10
Цитата Сообщение от Cooller51190 Посмотреть сообщение
А для текстовых данных а не числовых такое возможно??если да то как????
ну если можно получить доступ к отдельному символу, то можно ведь в цикле вызывать функцию print для каждого из них
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.03.2013, 07:29 11
Цитата Сообщение от fjay69 Посмотреть сообщение
Проще говоря, тебе нужно записать данные в файл?
Скорей драйвер клавиатуры.

Добавлено через 7 минут
Цитата Сообщение от Cooller51190 Посмотреть сообщение
Нет...мне нужно следующее... вводиш какие либо данные нажимаешь Ентер и на экране появляется в двоичном виде...
Ну тогда ИМХО так:
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
#include <iostream>
void BitShow(char c);
void BitShow(std::string s);
int main()
{
 std::string s;
 std::cout<<"введи строку"<<std::endl;
 std::cin>>s;
 BitSow(s);
 std::cout<<std::endl;
 return 0;
}
void BitShow(char c)
{
 int i;
 char mask;
 for (mask=0x80; mask!=0; mask/=2)
 {
  if ((c&mask)!=0x00)
  {
   std::cout<<"1";
  }
  else
  {
   std::cout<<"0";
  }
 }
}
void BitShow(std::string s)
{
 size_t i;
 size_t L;
 L=s.lenght();
 for (i=0, i<L; ++i)
 {
  BitShow(s[i]);
 }
}
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
26.03.2013, 21:27  [ТС] 12
BitSow(s);
Выдаёт ошибку...

Добавлено через 11 минут
в main

Добавлено через 11 минут
первый вопрос решил теперь выдаёт на L=s.lenght();

Добавлено через 2 часа 35 минут
кто подскажет в чём проблема?
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
26.03.2013, 21:33 13
да у тебя ещё и с английским проблема. Ой как тяжело грамматических ошибок не допускать!
s.length();
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
26.03.2013, 21:37  [ТС] 14
так эти ошибки исправил, но почему то всё символы которые вводишь выводят одно и тоже..
.

Добавлено через 1 минуту
Kuzia domovenok спасибо, сам уже увидел.... с компилировал но выдаётся всё одно и тоже
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2013, 22:02 15
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
string f(int d_code);
 
int main()
{
 setlocale(0, "");
 
 cout << "введи число: ";
 
 int n;
 cin >> n;
 
 cout << f(n) << endl;
 
 cout << endl;
 system("pause");
 return 0;
}
 
string f(int d_code)
{
    string b_code;
    int b = 0;
    int q = 0;
    
    if (d_code != 0)
    {
        while (true)
        {
            q = d_code / 2;
            if (q == 0) 
            {
                b_code.insert(b_code.begin(), '1');
                break;
            }
            b = d_code % 2;
            if (b == 0) b_code.insert(b_code.begin(), '0');
            if (b == 1) b_code.insert(b_code.begin(), '1');
            d_code = q;
        }
    }
    else b_code.insert(b_code.begin(), '0');
    
    int c = (b_code.size() % 4); 
    if (c != 0)
        for (int i = 0; i < 4 - c; i++)
            b_code.insert(b_code.begin(),'0');
    
    return b_code;
}
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
07.04.2013, 17:20  [ТС] 16
Правильной оказалась только эта программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <bitset>
 
int main()
{
    std::string str;
 
    std::cout << "Enter: ";
    std::getline(std::cin, str);
 
    for (int i = 0; i < str.size(); ++i)
        std::cout << std::bitset<8>(str[i]) << ' ';
    std::cout << std::endl;
 
    system("PAUSE");
    return 0;
}
Но не ясно как корректно объяснить что такое функция (библиотека) bitset.
Подскажите как корректно это сказать что это такое и зачем оно там нужно???
Или подскажите как такое же можно сделать другим способом??? Без использования bitset.. Но хотелось бы всё же узнать и про bitset тоже...
Читал эту статью, но с трудом это понимаю...
http://www.cplusplus.com/reference/bitset/bitset/
Подскажите кто знает???
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2013, 21:01 17
Цитата Сообщение от Cooller51190 Посмотреть сообщение
Правильной оказалась только эта программа
Чем моя неправильна?
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
08.04.2013, 12:48  [ТС] 18
Цитата Сообщение от alsav22 Посмотреть сообщение
Чем моя неправильна?
На самом деле меня тоже интересует этот вопрос, так как с логической точки зрения программа верна.
Но вот человек который проверял сказал следующее а хз чё она ваще выдаёт... правильной оказалась только та... только с пометкой что неясно что за функция (библиотека ) bitset... Теперь вот пытаюсь узнать что это такое... Если знаешь подскажи, если не трудно...
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 13:17 19
Цитата Сообщение от Cooller51190 Посмотреть сообщение
Но вот человек который проверял сказал
Человек сам-то что-нибудь понимает?

Цитата Сообщение от Cooller51190 Посмотреть сообщение
правильной оказалась только та.
Как правильность определяли?
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
08.04.2013, 13:23  [ТС] 20
Чисто в теории должен понимать "ЭТО ПРЕПОД"...А как проверялась одному богу известно...К сожалению сказать подробнее не могу
0
08.04.2013, 13:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2013, 13:23
Помогаю со студенческими работами здесь

Написать программу - сценарий, преобразующую массив чисел из десятичной системы счисления в двоичную
Помогите, пожалуйста, плохо разбираюсь в Matlab:( 2. Написать программу - сценарий, преобразующую...

Нужно написать программу которая сохраняет данные dat.file
Нужно написать программу которая сохраняет данные dat.file Почему не создает &quot;dat.file&quot;! где...

Написать программу, преобразующую файл АВС.ТХТ в файл INV.TXT
Написать программу, преобразующую файл АВС.ТХТ в файл INV.TXT. Причем первой строкой INV.TXT...

Написать программу, преобразующую XML-файлы в DDF-файлы
Нужно написать программу, преобразующую XMLфайлы в DDFфайлы... Посоветуйте с чего начать? Есть ли...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru