Форум
C/C++
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, disputANT, Вы писали: ANT>Здравствуйте, Ops, Вы писали: Ops>>Перевод должен упрощать чтение для тех, кому на английском не комфортно, а не ставить идиотские задачи по его расшифровке. ANT>"Давайте спорить о вкусе омаров с теми, кто их ел". (с) Жванецкий ANT>Не поленился, вчера сумел через третьи руки раздобыть текст этого раздела и даже набрал его :) ANT>[q] ANT>Остроконечные и тупоконечные слова ANT>Из памяти может быть выбран один байт данных, но зачастую одновременно извлекается несколько последовательных байтов, образующих число. Например, в Microsoft Visual C++ значение типа int образуют четыре байта, считываемые из памяти вместе. Так как к памяти можно обращаться двумя способами, люди, которые проектируют компьютеры, должны ответить на важный вопрос: что содержится в первом байте (адрес которого наименьший) — старшие или младшие биты значения int? ANT>На первый взгляд кажется, что это не должно иметь значения. Конечно, важно, чтобы все части компьютера одинаково считали, с какого конца int адрес меньше, иначе воцарится хаос. Вот в чем заключается разница между этими способами хранения. Если значение int, равное 0x01234567, хранится по адресам 1000–1003 и первым хранятся старшие биты, то по адресу 1000 содержится байт 0x01, а по адресу 1003 — байт 0x67, в то время как если сначала хранится младший байт, то по адресу 1000 содержится 0x67, а по адресу 1003 — 0x01. Компьютеры, которые хранят старшие биты в байте с младшим адресом, называются компьютерами с обратным порядком байтов ("тупоконечниками", big-endian). Компьютеры с прямым порядком байтов ("остроконечники", little-endian) сначала читают младшие биты. Итак, имеется два способа хранения целого числа (или указателя), и нет никаких причин предпочесть один другому, так что разные команды, работающие на разных процессорах для разных компаний, могут делать разный выбор. ANT>Проблемы начинаются, когда данные, записанные на диск или отправленные по сети одним компьютером, должны быть прочитаны другим компьютером. Диски и сети пересылают информацию побайтно, а не весь int одновременно. Поэтому оказывается важно, какой конец числа сохраняется (или отправляется) первым. Если отправляющий и принимающий компьютеры не согласованы, то значение, отправляемое как 0x01234567, может быть получено как 0x67452301. ANT>Порядок байтов является лишь одной из причин, по которым C++ не определяет, как биты располагаются в int или как значение одного поля в объединении влияет на другие поля. Это одна из причин, по которым программу можно написать так, что она будет успешно работать на компьютере одного вида, но приводить к аварийному завершению на другом. ANT>[/q]
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …