Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ZooDrugs
0 / 0 / 0
Регистрация: 28.04.2016
Сообщений: 10
#1

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

19.06.2016, 20:33. Просмотров 266. Ответов 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
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2016, 20:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перестановка байтов (C++):

Перестановка байтов в двоичном файле - C++
Здравствуйте! Подскажите пожалуйста, как сделать перестановку байтов в двоичном файле?=(

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

Чтение байтов - C++
Ребят, здравствуйте , nомогите разобраться , есть бинарный файл , в нем данные заnисанные в структурах , и в файле 1-е 4 байта это кол-во...

Порядок байтов - C++
Заранее извиняюсь если не туда пишу... Помогите определить порядок байтов: 01 00 00 00 71 82 3D 00 CB 82 3D 00 ED 68 4C 23...

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

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

2
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 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
623 / 521 / 101
Регистрация: 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
Привет! Вот еще темы с ответами:

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

Неправильное выделение байтов - C++
void *_upointer; int type:2; В классе присутствуют 2 переменные. Насколько я знаю, указатель занимает 4 байта, а int в данном случае...

Задать порядок байтов - C++
Нет ли в C++ какого-то штатного средства, позволяющего преобразовать порядок байт числа в &quot;от старшего к младшему&quot;? Понятно, что...

Получить число из байтов - C++
добрый день, получаю байты числа вот так: int number; int bytes; cin&gt;&gt;number; bytes=(number&amp;0x000000FF); ...


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

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

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