未必!这可能是数字对,也可能是你叫它复数,二元数什么的,随便你。但是只要它是分散的,可以数量子化的,它自然也可以转换成的数字。参考前图中的二维区位编号,我们使用数字对(1,1)字符h。(1,1)可以简单地转换成11,然后可以进一步映射到从0或1开始的编号。
编号是连续的吗?
有序性并不意味着连续性。在此需要说明的一点是,从前面的叙述来看,编号比编码早,但实际情况是人们通常一起考虑这两者,编号反过来又会受到编码考虑的影响,这样做只是为了使从编号到编码的映射或转换更方便。其中包括:
1.按照日常习惯,编号一般要从1开始,受编码影响,编号也要从0开始。
2.编号写成十进制是一种更自然的方式。受编码的影响,编号通常以十六进制的形式写,并写成固定的位数。如果不够,就在前面填0,比如把48写成0048;比如U+1D11E就是一个五位数。
3.为便于以后的扩展,编码经常会跳过某些码位,甚至会保留大面积的未定义或作为保留用途。例如Unicode就有所谓的代理区域(surrogatearea),后续我们将进一步了解。所以编号也跳过了这些。(实际上到了后面你会发现,到底谁影响谁还真不好说!但是当你明白的时候,这些已经不重要了…)
总之,让映射规则尽可能简单。
编码和编号有什么区别?
也许你会说,这两者有什么不同?您确实可以将编号也称为编码。
但是事情并非总是如此,这种相似性的确困扰着许多人,尤其是Unicode,许多人把代码点称为Unicode代码,这种说法本身并没有错,这取决于你如何定义代码,而他们是否意识码点只是一种抽象的代码?Unicode将较终的具体代码称为UTF(UnicodeTransforma
tionFormat),即所谓的Unicode转换格式。
所谓转换,其实就是将抽象的数字映射到具体的、较终的编码中。