Являются ли цифры представленными последовательно во всех текстовых кодировках?

Этот вопрос является агностиком языка, но вдохновлен этими вопросами c/С++.

Как преобразовать один char в int

Char для преобразования int в C

Можно ли предположить, что символы для цифр (0123456789) появляются во всех текстовых кодировках?

то есть. можно ли предположить, что

'9'-'8' = 1
'9'-'7' = 2
...
'9'-'0' = 9

во всех кодировках?

Я с нетерпением жду окончательного ответа на этот вопрос:)

Спасибо,

Обновление: В порядке, позвольте мне ограничить все кодировки, чтобы означать что-либо старое как ASCII и/или EBCDIC, а затем. Sandscrit Я не так беспокоюсь.,.

Ответ 1

Я не знаю обо всех кодировках, но, по крайней мере, в ASCII и <shudder> EBCDIC, цифры 0-9 все идут последовательно и в порядке увеличения числа. Это означает, что все кодировки на основе ASCII- и EBCDIC также должны иметь свои цифры в порядке. Поэтому для почти всего, с чем вы столкнетесь, за исключением кода Морзе или хуже, я скажу "да".

Ответ 2

Вам будет трудно доказать отрицательный результат. Никто не может знать каждую кодировку текста, когда-либо изобретенную.

Все кодировки, используемые сегодня (кроме EBCDIC, все еще широко используются?), являются суперсетями ASCII. Я бы сказал, что у вас больше шансов выиграть в лотерею, чем вы должны найти практическую среду, где строгое упорядочение "0" до "9" не выполняется.

Ответ 3

Оба стандарта С++ и стандарт C требуют, чтобы это было так, для текста программы С++ и C.

Ответ 4

Согласно K & R ANSI C это.

Выдержки:

... "Эта конкретная программа основана на свойствах символьного представления цифр. Например, тест

if (c >= '0' && c <= '9') ...

определяет, является ли символ в c цифрой. Если это так, числовое значение этого цифра

c - '0'

Это работает только в том случае, если '0', '1', ..., '9' имеют последовательные возрастающие значения. К счастью, это верно для всех наборов символов...."

Ответ 5

Все текстовые кодировки, которые я знаю, обычно упорядочивают каждое представление цифр последовательно. Тем не менее, ваш вопрос становится намного шире, когда вы включаете все другие представления цифр в других кодировках, таких как японский: 1234567890. Обратите внимание, что символы для чисел различны? Ну, они на самом деле разные кодовые точки. Итак, я действительно думаю, что ответ на ваш вопрос сложно, может быть, потому что там так много кодировок, и у них есть несколько представлений цифр в них.

Лучший вопрос - спросить себя, почему мне нужно в первую очередь рассчитывать на цифры в последовательных кодовых точках?