Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Смещение shl / 8 сообщений из 8, страница 1 из 1
20.05.2020, 08:50
    #39959756
STestS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смещение shl
Здравствуйте.
Знаю что данная тема уже поднималась здесь не раз, но все таки мне кажется я не нашел решения...

Есть такой код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
Buffer: packed array [0 .. 4095] of Byte;

Var
  Count: integer;
begin
Count := (Buffer[32] shl 24) + (Buffer[33] shl 16) + (Buffer[34] shl 8) + (Buffer[35]);
end;


Меня интересует именно строка с "Count". Почему мы получаем значение с массива а потом смещаемся? Спрашиваю поскольку это что то типа задания.
Буду раз если кто то объяснит.
...
Рейтинг: 0 / 0
20.05.2020, 08:58
    #39959760
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смещение shl
STestS
Почему мы получаем значение с массива а потом смещаемся?

Думаете, логичнее сначала смещаться, а потом получать значение из массива?
Или я не понял вопрос...
Операция смещение производится над чем-то. Как производить смещение, если нет числа...
...
Рейтинг: 0 / 0
20.05.2020, 09:17
    #39959766
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смещение shl
STestS,
В массиве находится 4-х байтовое целое, байты расположены в порядке big-endian (сначала старший).
Это один из способов перекодировки.
...
Рейтинг: 0 / 0
20.05.2020, 09:57
    #39959777
STestS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смещение shl
goldmi45
STestS
Почему мы получаем значение с массива а потом смещаемся?

Думаете, логичнее сначала смещаться, а потом получать значение из массива?
Или я не понял вопрос...
Операция смещение производится над чем-то. Как производить смещение, если нет числа...


я понимаю последовательность действий, мне не понятно для чего это было сделано...
...
Рейтинг: 0 / 0
20.05.2020, 09:59
    #39959779
STestS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смещение shl
Соколинский Борис
STestS,
В массиве находится 4-х байтовое целое, байты расположены в порядке big-endian (сначала старший).
Это один из способов перекодировки.


Допустим это кодировка: если все элементы массива числа представленные в байтовом виде то почему сразу их не переконвертировать...
...
Рейтинг: 0 / 0
20.05.2020, 10:04
    #39959781
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смещение shl
STestS
Допустим это кодировка: если все элементы массива числа представленные в байтовом виде то почему сразу их не переконвертировать...
Это вопрос к тому, кто их в массив записал таким способом.
Рискну предположить, что это хедер какого-то файла и такой стандарт записи, изначально заточенный под big-endian.
...
Рейтинг: 0 / 0
20.05.2020, 10:17
    #39959784
STestS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смещение shl
Соколинский Борис
STestS
Допустим это кодировка: если все элементы массива числа представленные в байтовом виде то почему сразу их не переконвертировать...
Это вопрос к тому, кто их в массив записал таким способом.
Рискну предположить, что это хедер какого-то файла и такой стандарт записи, изначально заточенный под big-endian.


Подскажите а как можно просмотреть весь массив в памяти? Дэбаг даст возможность просмотреть весь массив но без смещений...
...
Рейтинг: 0 / 0
20.05.2020, 15:18
    #39959879
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смещение shl
STestS
Подскажите а как можно просмотреть весь массив в памяти?

В отладке <Ctrl+F7>, окно "Evaluate/Modify"
Buffer[i],n
i - стартовый индекс
n - количество элементов
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Смещение shl / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]