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

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

Войти
Регистрация
Восстановить пароль
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
#1

Порядок байт. Массив чаров приводится к типу unsigned int. - C++

02.04.2014, 09:23. Просмотров 381. Ответов 8
Метки нет (Все метки)

Есть массив из 4 char. Массив приводится к типу unsigned int и затем данные извлекаются в переменную типа unsigned int. Нужно, чтобы байты в переменной шли в том же порядке, что и в массиве. Однако, по какой-то причине, байты идут в обратном порядке. Почему так?
0
Миниатюры
Порядок байт. Массив чаров приводится к типу unsigned int.  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 09:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Порядок байт. Массив чаров приводится к типу unsigned int. (C++):

Сделать преобразование unsigned char в char, а затем типу int - C++
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

Как исправить ошибку невозможно преобразовать аргумент 1 из "unsigned int" в "unsigned int []"? - C++
Ребят, срочно прошу вас помочь.. Есть ошибка (невозможно преобразовать аргумент 1 из "unsigned int" в "unsigned int ") как ее...

Как массив char[4] перевести в unsigned int? - C++
Есть массив из 4х char символов (4-е байта), нужно его перевести в unsigned int. Я сделал втупую: unsigned int B=0; ...

Создать массив объединений, содержащих поля unsigned int и float - C++
Очень вас прошу! Нужно написать на С++ программу! Я уже отчаялась. Часа 2 над этим сижу В программе должно быть как минимум 2...

Поместить двоичный код, в веденной строке, в переменную типа int и unsigned int. - C++
Пользователь вводит двоичную строку (32 символа). Поместить двоичный код, в веденной строке, в переменную типа int и unsigned int.

Определение типов. Приведение int к unsigned int - C++
При таком определении 5 рассматривается как int. Как при определении указать что 5 будет именно unsigned int? unsigned int n=5; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryS
Модератор
6634 / 5041 / 466
Регистрация: 14.02.2011
Сообщений: 16,853
02.04.2014, 09:29 #2
Цитата Сообщение от bgm123 Посмотреть сообщение
Однако, по какой-то причине, байты идут в обратном порядке. Почему так?
байты идут в том же порядке
число считывается по другому
прочитай про представления числа big-endian и little-endian
http://ru.wikipedia.org/wiki/Порядок_байтов
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
02.04.2014, 09:37 #3
ValeryS, получается в памяти число может лежать так? unsigned int x = 1;
1000 0000 0000 0000 ?(16ая запись)
0
ValeryS
Модератор
6634 / 5041 / 466
Регистрация: 14.02.2011
Сообщений: 16,853
02.04.2014, 09:45 #4
Цитата Сообщение от aLarman Посмотреть сообщение
ValeryS, получается в памяти число может лежать так? unsigned int x = 1;
нет в байтах порядок не меняется
вот так
00000001 00000000 00000000 00000000
или
0x01 0х00 0х00 0х00
что несколько не удобно, для человека, но вполне логично для машины

смотри
C
1
2
3
4
5
//адрес значение
//1000     0х01
//1001     0х00
//1002     0х00
//1003     0х00
по более старшему адресу более старший бит

когда выводится дамп памяти на экран то слева младшие адреса
считай что машина, как евреи, пишут справа налево
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
02.04.2014, 09:49 #5
ValeryS, а вкурил, но все же - очередной разрыв шаблона
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.04.2014, 11:48 #6
Цитата Сообщение от aLarman Посмотреть сообщение
очередной разрыв шаблона
Нарушает всю концепцию реальности? То ли ещё будет.
0
aLarman
02.04.2014, 12:00
  #7

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Нарушает всю концепцию реальности?
не так глобально, просто периодично встречаю какие-то нелогичные(для моего восприятия) вещи

0
SatanaXIII
02.04.2014, 12:28
  #8

Не по теме:

aLarman, честный депутат, лысый панк, квадратура круга?

0
aLarman
02.04.2014, 12:30     Порядок байт. Массив чаров приводится к типу unsigned int.
  #9

Не по теме:

SatanaXIII, прекратите

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2014, 12:30
Привет! Вот еще темы с ответами:

Разница int, short, unsigned int, unsigned short - C++
Есть например цикл который проходит по массиву в котором 100 элементов. В чем практическая выгода и разница в истоьзовании типов short,...

Считать массив байт в переменную типа int в обратном порядке - C++
Есть массив байт: char byData = {0x87, 0xd6, 0x12, 0x00}; Нужно считать его в переменную типа int в обратном порядке, т.е. должно...

Присваивание типу unsigned значения не из его диапазона - C++
объясните пожалуйста по шагам, что происходит тут. Читал я что происходит деление по какому то модулю, ну вобщем непонятно написано. ...

Массив строк как массив указателей на массивы чаров - C++
Я всё правильно сделал? char* Files; Files = "AHEAD"; Files = "LEFT"; Files = "RIGHT"; Files = NULL; int searchFile()...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.04.2014, 12:30
Ответ Создать тему
Опции темы

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