Верно ли, что порядковый номер влияет только на расположение чисел в памяти, но не на строку?

#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 — это один байт, а строка — это просто массив символов. Это то же самое, что и массив чисел; порядок чисел не меняется, но порядок байтов внутри каждого числа меняется.