Language agnostic 在所有文本编码中是否按顺序表示数字?

Language agnostic 在所有文本编码中是否按顺序表示数字?,language-agnostic,unicode,text,encoding,ascii,Language Agnostic,Unicode,Text,Encoding,Ascii,这个问题与语言无关,但其灵感来自这些c/c++问题 假设数字字符(0123456789)在所有文本编码中连续出现是否安全 i、 e.可以这样假设吗 '9'-'8' = 1 '9'-'7' = 2 ... '9'-'0' = 9 所有编码 我期待着这个问题的最终答案:) 谢谢 更新:好的,让我将所有编码限制为ASCII和/或EBCDIC以及之后的任何编码。沙斯克里特我不太担心 我不知道所有的编码,但至少在ASCII和EBCDIC中,数字0-9都是连续的,并且以递增的数字顺序出现。这意味着所有

这个问题与语言无关,但其灵感来自这些c/c++问题

假设数字字符(0123456789)在所有文本编码中连续出现是否安全

i、 e.可以这样假设吗

'9'-'8' = 1
'9'-'7' = 2
...
'9'-'0' = 9
所有编码

我期待着这个问题的最终答案:)

谢谢


更新:好的,让我将所有编码限制为ASCII和/或EBCDIC以及之后的任何编码。沙斯克里特我不太担心

我不知道所有的编码,但至少在ASCII和EBCDIC中,数字0-9都是连续的,并且以递增的数字顺序出现。这意味着所有基于ASCII和EBCDIC的编码也应该按顺序排列数字。所以,对于几乎所有你会遇到的事情,除了莫尔斯电码或者,我会说是的。

根据K&R ANSI C,它是

摘录:

…“这个特殊的程序依赖于数字的字符表示的属性。例如,测试


如果(c>='0'&&c你会发现很难证明否定。没有人可能知道所有发明的文本编码


目前所有常用的编码(EBCDIC除外,是否仍在通用?)是ASCII的超集。我认为你更容易赢得彩票,而不是找到一个严格的“0”到“9”的排序环境。

< P> C++和C标准都要求C++和C程序文本。但是,如果在其他编码中包含所有其他数字表示形式,例如日语,则您的问题会变得更广泛:1234567890. 注意数字的字符是如何不同的?嗯,它们实际上是不同的代码点。所以,我真的认为你的问题的答案很难回答,因为有太多的编码,而且它们有多个数字表示


一个更好的问题是问你自己,为什么我首先需要在顺序代码点中计算数字?

一个确定的“是”答案必须考虑过去使用过的或将来将要实现的每一种编码。所以不要指望这一点。你可能会得到一个确定的“否”jaff:Dude“maybe”不是决定性的:)一个“是的,除了这个xxx”或者一个“yyy后不”引用我会接受的参考资料。我个人认为(或直觉上的“相信”)答案是肯定的,但我同样乐意接受一个明确的“不”,从逻辑上说,不可能证明一个不存在。如果你能证明这一点,让我知道,我会为你做一个新的编码。迈尔斯:这是迄今为止最好的观点。ThanksChris,谢谢,但我正在寻找一个明确的答案,希望能从与编码规范密切合作的人那里得到。我“相信”正如你所做的那样,没有人会疯狂到发布不支持0-9的编码,但正如你自己所知,在这份工作中,相信是不够的。谢谢,你认为“与编码规范密切合作”的人是谁?没有一个中央组织负责所有编码的更改。任何人都可以创建自己的。我现在可以实现一个数字顺序相反的数字,或者0在9之后。你将得到的唯一明智的答案是“每种编码都不重要。找出你正在阅读的编码,并遵循其惯例”。@Binary Worrier-我可以向你保证,对于99.9999%的文本来说,“9”-“0”将是9。你不会得到比这更准确的答案。甚至中华人民共和国的官方编码也是ASCII兼容的。此外,我确实列举了两种情况,其中0-9不是二进制连续的,但是摩尔斯电码很难用纯二进制表示,所以它可能不算。克里斯:哥们,我同意你,我同意你的看法,但不幸的是,我是一个迂腐的书呆子,我会坚持一段时间,等待一个“确定的”答案。Thanks@Stephen莫尔斯电码没有空格来分隔单词,甚至没有信号来分隔字符。它依靠点和破折号之间的计时来确定“…”(s)和“…”(eee)之间的差异。计算机需要表示点(00)、虚线(01)、字符边界(10)和单词边界(11)。大多数字母都是3个或3个以上的点或破折号,这意味着它的空间效率远远低于ASCII,对于任何体系结构来说,这都是不可能的选择。“今天常用的所有编码……都是ASCII的超集”,你能举个例子吗?谢谢,嗯,真的吗?得到了一个源代码,这将限制对源文件的编码的要求,不能使该语句延伸到编译程序运行的数据上,也应该注意到C(并且可能是C++,但我不是C++程序员)要求在打印时,在ASCII中打印< <代码> char < /> >(而不是在“C”语言环境,使用ASCII)。@jalf:C99标准中的5.2.1字符集:“在源代码和执行基本字符集中,上述十进制数字列表中0后的每个字符的值都应比前一个字符的值大一个”(我确信C90中也有类似的内容,但我现在手头没有)迈克尔:他们说的“执行基本字符集”是什么意思“这不是我最好的论点,但我认为那本书的最新版本应该对它现在的正确性负责。碰巧我的书还不到一年。以利亚:有两件事1)我看到上面的12345677890,不是日文字符。2) 原因纯粹是为了一劳永逸地回答c/c++风格的转换