Являются ли цифры представленными последовательно во всех текстовых кодировках?
Этот вопрос является агностиком языка, но вдохновлен этими вопросами 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. Обратите внимание, что символы для чисел различны? Ну, они на самом деле разные кодовые точки. Итак, я действительно думаю, что ответ на ваш вопрос сложно, может быть, потому что там так много кодировок, и у них есть несколько представлений цифр в них.
Лучший вопрос - спросить себя, почему мне нужно в первую очередь рассчитывать на цифры в последовательных кодовых точках?