Бинарный формат для разных типов данных

Каков точный двоичный формат unsigned long long тип (по крайней мере, в визуальной студии).

Я делаю некоторую побитовую операцию с указателями псевдонимов, я устанавливаю бит с помощью операций на unsigned char указатели затем делают некоторые другие операции над unsigned long long указатели (псевдоним).

Формат unsigned long long выглядит странно и из-за этого портит результаты, также кажется, что операция сдвига битов также ведет себя странно:

Из теста битовой маски кажется, что эти данные расположены из right: LSB->MSB : left, что означает, что сдвиг >> переводит данные в более значимый бит, а не в младший, верно?

Компилятор ICC 13.0, а ОС Windows 7-64.

0

Решение

Байтная схема, которую вы описываете, имеет порядок байтов, который обычно используют процессоры Intel. Сдвиги битов зависят не от расположения в памяти числа, а от значения, поэтому порядковый номер не должен влиять на стоимость ваших операций. Если вы используете псевдоним указателя, однако, как приведение к char * и используя арифметику указателей для извлечения ее сегментов, вы получите поведение, зависящее от порядка байтов, которое на процессорах Intel с младшим порядком байтов может не соответствовать ожидаемому.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]