Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ZooDrugs
0 / 0 / 0
Регистрация: 28.04.2016
Сообщений: 10
#1

Перестановка байтов

19.06.2016, 20:33. Просмотров 303. Ответов 2
Метки нет (Все метки)

Задание:
Определить объединение из двух полей. Первое поле - массив из 4 байт, второе двойное слово. Ввести случайное целое число в диапазоне от 40 до 50000. Округлить его до ближайшего целого, кратного 8. Переставить байты таким образом, что бы на 1 был 2, 2-3,3-4,4-1. Вывести число в 16 СС до и после перестановки.

При решение данной задачи, есть одно но... Если до перестановки число = 1489, то после уже = 89000014. Показав данный вывод преподавателю, мне сказали, что вывод первого числа, тогда тоже должен содержать эти нули. Но при решение этого вопроса, я попал в тупик. Либо при объединение так происходит, либо перестановку не правильно делаю.

Помогите пожалуйста с данной задачей.

Код:
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
#include<iostream>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
 
using namespace std;
    union fields{
        char field1[3];
        unsigned int field2;
    };
int main ()
{
    char t;
    srand((unsigned)time(NULL));
    fields x;
    x.field2= (rand()%4999960+40);
    if (x.field2%8!=0) x.field2=(x.field2/8)*8; 
    cout << hex << x.field2<<endl;
    t=x.field1[0];
    x.field1[0]= x.field1[1];
    x.field1[1]= x.field1[2];
    x.field1[2]= x.field1[3];
    x.field1[3]=t;
    
 
    cout << hex << x.field2;
 
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2016, 20:33
Ответы с готовыми решениями:

Перестановка байтов в двоичном файле
Здравствуйте! Подскажите пожалуйста, как сделать перестановку байтов в двоичном...

Как тут происходит перестановка байтов...
Вот в книге Шилдта 4-е издание... есть такой пример: #include &lt;iostream&gt;...

Порядок байтов
Заранее извиняюсь если не туда пишу... Помогите определить порядок байтов: 01...

Сумма байтов
Всем доброго времени суток. Помогите пожалуйста. У меня задание: вычислить...

порядок байтов
Подскажите, пожалуйста, как записать целое число в битовый файл, чтобы на всех...

2
castaway
Эксперт С++
4929 / 3036 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
19.06.2016, 21:50 #2
C++
1
2
3
4
5
6
#include <iostream>
#include <iomanip>
 
int main() {
    std::cout << std::hex << std::setw( 8 ) << std::setfill( '0' ) << 0x123 << std::endl; // 00000123
}
1
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
19.06.2016, 22:18 #3
Цитата Сообщение от ZooDrugs Посмотреть сообщение
Первое поле - массив из 4 байт
Цитата Сообщение от ZooDrugs Посмотреть сообщение
C++
1
char field1[3];
Цитата Сообщение от ZooDrugs Посмотреть сообщение
второе двойное слово.
Цитата Сообщение от ZooDrugs Посмотреть сообщение
C++
1
unsigned int field2;
для надежности лучше long вместо int
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2016, 22:18

Чтение байтов
Ребят, здравствуйте , nомогите разобраться , есть бинарный файл , в нем данные...

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

Преобразование 4-х байтов в int
Приветствую, в общем пытаюсь считать 4 байта с файла и собрать их в одно число...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru