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

Упорядочить байты машинного слова - C++

Восстановить пароль Регистрация
 
Mee
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
27.11.2010, 19:02     Упорядочить байты машинного слова #1
Задание стоит так:
Упорядочить байты четырьохбайтового машинного слова по возрастанию их значений, использовав подходящие структуры данных.
Подскажите что это за структуры и как вообще это делается

Добавлено через 16 минут
Может использовут такую вот структуру?
C++
1
2
3
4
5
6
7
struct Word4
{
    unsigned _byte1: 8;
    unsigned _byte2: 8;
    unsigned _byte3: 8;
    unsigned _byte4: 8;
}
обьясните как именно сравнивать байты?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2010, 19:02     Упорядочить байты машинного слова
Посмотрите здесь:

Упорядочить в каждой строке текста слова в алфавитном порядке C++
Упорядочить слова по алфавиту (строки) C++
C++ упорядочить слова в тексте (делать с текстовыми документами)
C++ Упорядочить слова в порядке возрастания их длины
Упорядочить слова в алфавитном порядке на С C++
Упорядочить слова по возрастанию количеств букв "d", входящих в слова C++
Упорядочить байты C++
C++ Чтение машинного кода exe файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
27.11.2010, 19:07     Упорядочить байты машинного слова #2
Думаю, если считать, что char имеет размер 1 байт, а int - 4 байта, то проще сделать
C++
1
2
3
4
5
union
{
  int dword;
  char bytes[4];
}
и отсортировать bytes любым методом.
Mr.X
Эксперт С++
 Аватар для Mr.X
2800 / 1576 / 246
Регистрация: 03.05.2010
Сообщений: 3,658
27.11.2010, 19:44     Упорядочить байты машинного слова #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
//////////////////////////////////////////////////////////////////////////////////////
//Упорядочить байты четырьохбайтового машинного слова по возрастанию их значений, 
//использовав подходящие структуры данных. 
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iomanip>
#include <iostream>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////////
typedef unsigned  T_4_byte_word;
typedef char      T_byte;
//////////////////////////////////////////////////////////////////////////////////////
union T_4_byte
{
    T_4_byte_word  _4_byte_word;
    T_byte         byte_arr[4];
};
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    for(;;)
    {
        std::cout << "n = ";
        T_4_byte  _4_byte;
        std::cin >> _4_byte._4_byte_word;        
        std::sort(_4_byte.byte_arr, _4_byte.byte_arr + 4);
        std::cout << "Число n с отсортированными байтами по возрастанию"
                  <<std::endl
                  << "\t"
                  << "от младших к старшим: "
                  << std::hex
                  << std::setfill('0')
                  << std::setw(10)
                  << std::showbase
                  << std::internal
                  << _4_byte._4_byte_word
                  << std::endl;
 
        std::reverse(_4_byte.byte_arr, _4_byte.byte_arr + 4);
        std::cout << "\t"
                  << "от старших к младшим: "
                  << std::setfill('0')
                  << std::setw(10)
                  << _4_byte._4_byte_word
                  << std::endl
                  << std::endl
                  << std::endl
                  << std::endl;            
    }
}
Yandex
Объявления
27.11.2010, 19:44     Упорядочить байты машинного слова
Ответ Создать тему
Опции темы

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