Какое значение имеет количество столбцов (16384) в MS Excel 2016?


29

Я только что заметил, что количество столбцов MS Excel увеличилось с ZZдо XFD16384 столбцов. Каково значение этой конкретной ценности? Почему MS не пошел дальше, до ZZZ? Почему они остановились на XFD?


1
Не совсем ответ на ваш вопрос, но MS перечисляет различные ограничения Excel здесь - support.office.com/en-us/article/…
матрица

2
Это произвольное дизайнерское решение, чтобы держать сложность в четко определенных рамках. Технически, единственным ограничением являются доступные ресурсы (память, процессор).
Даниэль Б

8
Как объяснила @teylyn в своем ответе, степени 2 являются обычным выбором в информатике, однако, точно, почему MS выбрала это значение, вероятно, здесь невозможно ответить, поэтому я голосую, чтобы закрыть этот вопрос как основанный на первичном мнении.
Матэ Юхас


3
Стоит отметить, что максимальный предел столбца был 16 384, по крайней мере, Excel 2007
Stevoisiak

Ответы:


34

Значение 16384 состоит в том, что вы можете иметь внутренние значения индекса столбца от 0 до 16383. Давайте посмотрим, что такое 16383 в двоичном виде:

0011 1111 1111 1111

Это на 2 бита меньше 16-битного слова. 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, которая превышает десять тысяч. Так что это может быть причиной, по которой ОП ищет.
ris8_allo_zen0

56

16 384 - это 2 ^ 14.

В то же время, когда столбцы были расширены до 16 384, строки были расширены до более миллиона, то есть 1 048 576.

Эти числа относятся к двум к степени 14 (2 ^ 14) и двум к степени 20 (2 ^ 20) соответственно, так же как и естественные (логические) прогрессии в масштабе блоков памяти компьютера, которые изначально были структурированы в байтах ,

По мере увеличения памяти компьютера стало возможным загружать и оценивать большее количество строк и столбцов в памяти для вычислений, поэтому сетка Excel могла вырасти из-за ограничений более ранних версий.

Эти максимальные числа для строк и столбцов были выбраны людьми, которые разрабатывают, как работает Excel, и стали возможными с ростом компьютерной памяти. Они могли бы выбрать разные числа, но количество строк и столбцов в Excel начиная с версии 2007 коренится в степени 2.


2
Конечно, но почему бы не 2 ^ 16 и 2 ^ 32 (так, байт и слово)?
Аяся

12
@Ajasja Вам нужно будет спросить об этом команду разработчиков Excel. Я сказал, что они могли выбрать разные цифры в моем ответе. Я только объяснил, откуда взялась модель, а не почему была выбрана определенная величина модели.
Тейлин

14
На самом деле, как Microsoft Excel MVP, вы гораздо лучше задаете этот вопрос команде разработчиков Excel, например, я сам :) Все еще +1.
Аяся

5
Примечание: большая часть кода Excel относится к внутреннему представлению в формулах: 2 ^ 16 нецелесообразно для 16-разрядного целого числа: Excel должен хранить также относительное позиционирование, поэтому как отрицательные, так и положительные числа. Возможно, один из битов используется как флаг (одиночный / интервал), поэтому было адаптировано общее количество столбцов
Джакомо

1
@GiacomoCatenazzi Относительное позиционирование будет работать нормально без выделенного знакового бита, если вы просто сочтете любое число, которое уведет вас за последний столбец, отрицательным.
Random832
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.