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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
24.03.2013, 10:14     Нужно написать программу преобразующую данные в машинный вид #1
Нужно написать маленькую программку которая преобразует разные типы данных в машинный код (двоичной системе счисления).....
Тоесть с клавиатуры вводим слово оно преобразуется в вид который воспринимается компьютером, то есть в двоичной системе счисления....
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 13:30     Нужно написать программу преобразующую данные в машинный вид #21
Там только не хватает: #include <string> и преобразование из int, но перевести строку в int не проблема.

Добавлено через 5 минут
У меня, вообщем-то, классический перевод числа из десятичной в двоичную. Только для красоты вывода, сделано выравнивание по байту. Т.е., если ввести 1, то выдаст: 0001. Может преподаватель это не понял? Но это и убрать можно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 13:36     Нужно написать программу преобразующую данные в машинный вид #22
Для проверки в работе, немного меняем код:
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 <iostream>
#include <cstdlib>
#include <string>
using namespace std;
 
string f(int d_code);
 
int main()
{
 setlocale(0, "");
 
 /*cout << "введи число: ";
 
 int n;
 cin >> n;*/
 int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 
 
 for (int i = 0; i < 10; ++i)
    cout << f(arr[i]) << 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;
}
Красота неописуемая!
Миниатюры
Нужно написать программу преобразующую данные в машинный вид  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 13:42     Нужно написать программу преобразующую данные в машинный вид #23
А чтобы из строки:
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
#include <iostream>
#include <cstdlib>
#include <string>
#include <sstream>
using namespace std;
 
string f(int d_code);
 
int main()
{
 setlocale(0, "");
 
 /*cout << "введи число: ";
 
 int n;
 cin >> n;*/
 string arr[10] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
 
 stringstream s;
 int n;
 for (int i = 0; i < 10; ++i)
 {
    s << arr[i]; // туда строка
    s >> n;     // оттуда число
    s.clear();
    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;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 13:52     Нужно написать программу преобразующую данные в машинный вид #24
Вы программу, про которую преподаватель сказал, что правильная, проверяли в работе? У меня она, почему-то, это выдаёт. И что здесь правильного?
Миниатюры
Нужно написать программу преобразующую данные в машинный вид  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 13:56     Нужно написать программу преобразующую данные в машинный вид #25
У меня - совсем другое дело.
Миниатюры
Нужно написать программу преобразующую данные в машинный вид  
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
08.04.2013, 14:18  [ТС]     Нужно написать программу преобразующую данные в машинный вид #26
Естественно проверял видел что такое выдаёт...попробую, ещё раз послать и объеснить что она выдаёт...Может прокатит...
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 14:23     Нужно написать программу преобразующую данные в машинный вид #27
Цитата Сообщение от Cooller51190 Посмотреть сообщение
Естественно проверял видел что такое выдаёт
Что-то я тему не пойму... И это, по вашему, правильное преобразование? 255, в двоичном виде, именно так и выглядит?
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
08.04.2013, 14:31  [ТС]     Нужно написать программу преобразующую данные в машинный вид #28
А bitset то объесните что вообще делает???

Добавлено через 5 минут
alsav22 спасибо за помощь
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 14:46     Нужно написать программу преобразующую данные в машинный вид #29
Цитата Сообщение от Cooller51190 Посмотреть сообщение
А bitset то объесните что вообще делает???
В данном коде, выводит коды символов в двоичном виде. Т.е., если ввели 255, то выведет код символа '2' (50), код символа '5' (53), и код символв '5' (53) в двоичном виде.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 16:59     Нужно написать программу преобразующую данные в машинный вид
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
15.04.2013, 16:59  [ТС]     Нужно написать программу преобразующую данные в машинный вид #30
Короче говоря такой расклад получается... Оказывается препода не интересует просто перевод в двоичный вид. Ему нужно следующее: "Ваша задача показать (!!!) внутреннее двоичное представление этого типа данных, используя операции сдвига(<<,>>) и поразрядные логические операции (&,|,~,^)." Сможете помочь с таким вот видом задания?

Добавлено через 9 часов 19 минут
ауууу помогите...

Добавлено через 11 часов 49 минут
подскажите хоть как это примерно сделать?

Добавлено через 7 часов 59 минут
Pascal
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
Program LAB1;
uses crt;
{==== Процедура распечатки байта в двоичном виде ====}
Procedure WriteByte(a : byte);
var i : integer;
begin
for i:=7 downto 0 do begin
{ Сдвиг на i бит вправо и выделение младшего бита }
if ((a shr i) and $01) <>0 then write('1')
else write('0');
end;
write(' ');
end;
{==== Главная процедура ====}
type bytearr = array[1..100] of byte;
type intptr = ^integer;
var
k,i : integer; { Счетчик бит}
{ Анализируемые переменные }
int : integer; { целое }
str : string[10]; { строка }
pint : intptr; { указатель на integer }
ipt : ^intptr; { указатель на указатель на integer }
px : pointer; { Промежуточный безтипный указатель }
bp : ^bytearr; { Указатель на массив байт }
{ массив целых для проверки изменения адресов }
iarr : array[1..5] of integer;
 
begin
{ Анализ типа integer }
int:=518; { Присвоение значения }
bp:=@int; { Получение указателя }
{ Побайтная распечатка }
writeln('Целое число');
for k:=1 to 2 do writebyte(bp^[k]);
writeln;
 
{ Анализ типа string }
str:='ABCD'; { Присвоение значения }
px:=Addr(str); { Получение указателя }
bp:=px; { Преобразование типа указателей }
{ Побайтная распечатка }
writeln('Строка символов');
for k:=1 to 11 do writebyte(bp^[k]);
writeln;
 
end.
Нашел что-то подобное на паскале... Вот незнаю как её в С++ перевести...
Прав я в данном решение или нет?
Yandex
Объявления
15.04.2013, 16:59     Нужно написать программу преобразующую данные в машинный вид
Ответ Создать тему
Опции темы

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