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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
24.03.2013, 10:14     Нужно написать программу преобразующую данные в машинный вид #1
Нужно написать маленькую программку которая преобразует разные типы данных в машинный код (двоичной системе счисления).....
Тоесть с клавиатуры вводим слово оно преобразуется в вид который воспринимается компьютером, то есть в двоичной системе счисления....
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
24.03.2013, 12:54     Нужно написать программу преобразующую данные в машинный вид #2
Проще говоря, тебе нужно записать данные в файл?
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
24.03.2013, 14:20  [ТС]     Нужно написать программу преобразующую данные в машинный вид #3
Нет...мне нужно следующее... вводиш какие либо данные нажимаешь Ентер и на экране появляется в двоичном виде...
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
24.03.2013, 14:24     Нужно написать программу преобразующую данные в машинный вид #4
Прям так единицами и нулями?
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
24.03.2013, 14:53  [ТС]     Нужно написать программу преобразующую данные в машинный вид #5
ага... именно так еденицами и нулями...
ya_noob
_
200 / 144 / 9
Регистрация: 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;
}
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
24.03.2013, 17:45  [ТС]     Нужно написать программу преобразующую данные в машинный вид #7
А для текстовых данных а не числовых такое возможно??если да то как????
Issues
429 / 364 / 37
Регистрация: 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;
}
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
24.03.2013, 18:09     Нужно написать программу преобразующую данные в машинный вид #9
Цитата Сообщение от ya_noob Посмотреть сообщение
C++
1
const int bitsCount = sizeof( unsigned char ) * 8;
Для полноты абстракции можно использовать макрос CHAR_BIT из <climits> вместо магического 8.
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
25.03.2013, 06:45     Нужно написать программу преобразующую данные в машинный вид #10
Цитата Сообщение от Cooller51190 Посмотреть сообщение
А для текстовых данных а не числовых такое возможно??если да то как????
ну если можно получить доступ к отдельному символу, то можно ведь в цикле вызывать функцию print для каждого из них
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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]);
 }
}
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
26.03.2013, 21:27  [ТС]     Нужно написать программу преобразующую данные в машинный вид #12
BitSow(s);
Выдаёт ошибку...

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

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

Добавлено через 2 часа 35 минут
кто подскажет в чём проблема?
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
26.03.2013, 21:33     Нужно написать программу преобразующую данные в машинный вид #13
да у тебя ещё и с английским проблема. Ой как тяжело грамматических ошибок не допускать!
s.length();
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
26.03.2013, 21:37  [ТС]     Нужно написать программу преобразующую данные в машинный вид #14
так эти ошибки исправил, но почему то всё символы которые вводишь выводят одно и тоже..
.

Добавлено через 1 минуту
Kuzia domovenok спасибо, сам уже увидел.... с компилировал но выдаётся всё одно и тоже
alsav22
5282 / 4801 / 442
Регистрация: 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;
}
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
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/
Подскажите кто знает???
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2013, 21:01     Нужно написать программу преобразующую данные в машинный вид #17
Цитата Сообщение от Cooller51190 Посмотреть сообщение
Правильной оказалась только эта программа
Чем моя неправильна?
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
08.04.2013, 12:48  [ТС]     Нужно написать программу преобразующую данные в машинный вид #18
Цитата Сообщение от alsav22 Посмотреть сообщение
Чем моя неправильна?
На самом деле меня тоже интересует этот вопрос, так как с логической точки зрения программа верна.
Но вот человек который проверял сказал следующее а хз чё она ваще выдаёт... правильной оказалась только та... только с пометкой что неясно что за функция (библиотека ) bitset... Теперь вот пытаюсь узнать что это такое... Если знаешь подскажи, если не трудно...
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 13:17     Нужно написать программу преобразующую данные в машинный вид #19
Цитата Сообщение от Cooller51190 Посмотреть сообщение
Но вот человек который проверял сказал
Человек сам-то что-нибудь понимает?

Цитата Сообщение от Cooller51190 Посмотреть сообщение
правильной оказалась только та.
Как правильность определяли?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2013, 13:23     Нужно написать программу преобразующую данные в машинный вид
Еще ссылки по теме:

Нужно написать программу которая считывает данные из текстового файла C++
C++ Нужно написать программу на C++
C++ Нужно написать программу

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

Или воспользуйтесь поиском по форуму:
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
08.04.2013, 13:23  [ТС]     Нужно написать программу преобразующую данные в машинный вид #20
Чисто в теории должен понимать "ЭТО ПРЕПОД"...А как проверялась одному богу известно...К сожалению сказать подробнее не могу
Yandex
Объявления
08.04.2013, 13:23     Нужно написать программу преобразующую данные в машинный вид
Ответ Создать тему
Опции темы

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