MS Excel 2016中的列数(16384)有何意义?


29

我只是注意到MS Excel列数从ZZ增加到XFD,即16,384列。此特定值的意义是什么?为什么MS不走得更远ZZZ呢?他们为什么停在XFD


1
不能完全回答您的问题,但MS会在此处列出各种excel限制-support.office.com/en-us/article/…–
矩阵

2
将复杂性保持在明确定义的范围内是一个任意的设计决定。从技术上讲,唯一的限制是可用资源(内存,CPU)。
Daniel B

8
正如@teylyn在回答中解释的那样,2的幂是信息学中的常见选择,但是,为什么MS选择此值的确切原因可能无法在此处回答,所以我投票以基于主要观点的观点结束这一问题。
朱塔什(MátéJuhász)


3
值得注意的是,自从至少Excel 2007
Stevoisiak

Answers:


34

16,384的重要性在于,您可以具有从0到16383的内部列索引值。让我们看一下16383是二进制的:

0011 1111 1111 1111

它比16位字少2位。1位可能是绝对/相对标志,将1位留给其他目的,整个东西整齐地包装在一个单词中。

行号相似:最大索引值为1,048,575是这样的:

0000 0000 0000 1111 1111 1111 1111 1111

在我看来,作为一名程序员,似乎正在使用32位字,其中低20位用作行索引,高12位用作其他内容。


1
这对我来说更有意义
Ooker

9
1,048,576是2的第一个乘方,即超过一百万...因此,您现在可以拥有“一百万以上的列”
HorusKol

6
16384是2的万次方。因此,这可能是OP寻找的原因。
ris8_allo_zen0

56

16,384是2 ^ 14。

在将列扩展到16,384的同时,行也扩展到超过一百万,即1,048,576。

这些数字分别与2的14的幂(2 ^ 14)和2的20的幂(2 ^ 20)有关,因此在最初以字节为单位的计算机存储单元的规模上的自然(逻辑)级数也是如此。 。

随着计算机内存的增加,可以加载和评估内存中更多的行和列以进行计算,因此Excel网格可能会由于早期版本的限制而增长。

这些行和列的最大数目是由设计Excel工作方式的人员选择的,当然,随着计算机内存的增加,这已经成为可能。他们本可以选择不同的数字,但是自2007版以来,Excel中的行和列数植根于2的幂。


2
可以,但是为什么不2 ^ 16和2 ^ 32(所以一个字节和一个字)呢?
Ajasja

12
@Ajasja您将需要询问Excel开发团队。我说他们可以在我的答案中选择不同的数字。我仅说明了模式的来源,而不是为什么选择了一定大小的模式。
teylyn

14
实际上,作为Excel Microsoft MVP,您可以更好地向Excel开发团队询问这个问题,例如,我自己:)还是+1。
Ajasja

5
注意:大多数excel编码都是关于公式的内部表示形式:2 ^ 16对于16位整数是不切实际的:Excel还需要存储相对位置,因此两个负数和正数都应存储。可能其中一位用作标志(单个/间隔),因此修改了总列数
Giacomo Catenazzi

1
@GiacomoCatenazzi如果您只考虑将使您经过最后一列的任何数字为负,则相对定位将可以在没有专用符号位的情况下正常工作。
Random832 '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.