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

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

02.04.2014, 09:23. Просмотров 433. Ответов 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 char в char, а затем типу int
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для...

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

Как массив char[4] перевести в unsigned int?
Есть массив из 4х char символов (4-е байта), нужно его перевести в unsigned...

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

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

8
ValeryS
Модератор
7215 / 5478 / 682
Регистрация: 14.02.2011
Сообщений: 18,532
02.04.2014, 09:29 #2
Цитата Сообщение от bgm123 Посмотреть сообщение
Однако, по какой-то причине, байты идут в обратном порядке. Почему так?
байты идут в том же порядке
число считывается по другому
прочитай про представления числа big-endian и little-endian
http://ru.wikipedia.org/wiki/Порядок_байтов
0
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,112
Завершенные тесты: 1
02.04.2014, 09:37 #3
ValeryS, получается в памяти число может лежать так? unsigned int x = 1;
1000 0000 0000 0000 ?(16ая запись)
0
ValeryS
Модератор
7215 / 5478 / 682
Регистрация: 14.02.2011
Сообщений: 18,532
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
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,112
Завершенные тесты: 1
02.04.2014, 09:49 #5
ValeryS, а вкурил, но все же - очередной разрыв шаблона
0
Tulosba
:)
Эксперт С++
4747 / 3241 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
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, прекратите =-O:D

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

Определение типов. Приведение int к unsigned int
При таком определении 5 рассматривается как int. Как при определении указать...

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

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


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

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

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