#endianness
#порядковый номер
Вопрос:
Верно ли, что независимо от того, является ли архитектура большим или маленьким порядковым номером, отличается только расположение чисел в памяти, расположение строки одно и то же?
Комментарии:
1. Существует ли архитектура процессора с встроенной поддержкой строк? Символы — это просто числа.
Ответ №1:
Если у вас простое 8-разрядное символьное представление (например, расширенный ASCII), то нет, порядковый номер не влияет на расположение, потому что каждый символ равен одному байту.
Если у вас есть многобайтовое представление, такое как UTF-16, то да, порядковый номер по-прежнему важен (см., например, http://en.wikipedia.org/wiki/UTF-16#Byte_order_encoding_schemes ).
Комментарии:
1. Я знаю, что маленький порядковый номер означает, что младший значащий байт восстанавливается по наименьшему адресу, но это относится к числу, а как насчет строки?
2. @compile-fan: Смотрите, например en.wikipedia.org/wiki/UTF-16#Byte_order_encoding_schemes .
3. Важно ли это для строки ascii?
Ответ №2:
Для строк из 1-байтовых символов это правильно. Для строк в Юникоде (2 байта / символ) будет разница.
Комментарии:
1. Можете ли вы пояснить разницу?
2. @compile-fan: Это то же самое, что и для многобайтовых чисел.
Ответ №3:
Как правило, это неверно. В зависимости от обстоятельств для символов может использоваться более одного байта, и в этом случае существует разница между кодировкой символов в конце строки и кодировкой символов в конце строки.
Ответ №4:
По большей части, но вы должны понимать почему. Большой или маленький порядковый номер относится к порядку байтов в многобайтовых типах данных, таких как целые числа. Символы ASCII — это всего лишь один байт.
Однако обратите внимание, что символы Unicode состоят из нескольких байтов, поэтому порядок байтов имеет значение. Весь смысл Unicode в том, что один байт в ASCII может кодировать только 256 различных значений, чего недостаточно для всех языков мира.
Обратитесь сюда для получения дополнительной информации о том, что означает порядковый номер: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html
Комментарии:
1. Я знаю, как порядковый номер влияет на числа, но я не знаю, влияет ли это на строку ascii.
2. Нет, это не влияет на строки ASCII, потому что символы ASCII — это один байт, а строка — это просто массив символов. Это то же самое, что и массив чисел; порядок чисел не меняется, но порядок байтов внутри каждого числа меняется.