Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
ВнизСколько байт достаточно для хранения длины строки? Найти похожие ветки
← →
sniknik © (2007-11-05 16:01) [40]> не совсем верно :)
я в основном про смещение, оно как видно уже на втором шаге может перевалить байт и стать 2 мя (или не на втором но очень очень быстро), что в сумме с описательным байтом самих смещения и длинны будет 3 байта, и хоть удавись, а дальше в меньше не уложишься.
если же первая строка не 256, а поменьше, например 1 байт, то 1+1+1 - описатель + смешение + длинна, и тоже очень быстро сумма переваливает 256 и на смешение нужно уже 2 байта. (3 прям магическое число)
не говоря уж о том когда размер действительно "подрастет" до использования int128 в смещении...
1 байт вначале, и редкие 2 случайных в том же начале (до 256) это не "не совсем верно" это "в основном верно. но есть не играющие роли исключения".
а тот же линуксовый текст всегда на одну строку 1 байт. читать правдя всегда придется только сначала, не адресно, но по задаче вроде произвольная адресация и не стоит.
← →
KilkennyCat (2007-11-05 16:01) [41]
> Anatoly Podgoretsky © (05.11.07 15:58) [39]
> ...они же свихнутся.
Они на этом форуме. Значит, уже ;)
← →
sniknik © (2007-11-05 16:04) [42]> Ты куда их гонишь, они же свихнутся.
да бросьте, ничего сложного в приведенной структуре нет. только она, имхо, не подходит под условие в вопросе. (рациональности размещения строк)
← →
KilkennyCat (2007-11-05 16:04) [43]
> sniknik © (05.11.07 16:01) [40]
> произвольная адресация
Легко решается записью строк в столбик, по вертикали ;)
← →
sniknik © (2007-11-05 16:06) [44]> рациональности размещения строк
вернее с точки зрения размера, т.к.
> нерационально использую дисковое пространство
если бы вопрос был бы как совместить размер поменьше и произвольный доступ... было бы другое дело.
← →
sniknik © (2007-11-05 16:08) [45]> Легко решается записью строк в столбик, по вертикали ;)
зачем решать если она не нужна? тут решается как раз противоположное.
← →
Riply © (2007-11-05 16:14) [46]> [40] sniknik © (05.11.07 16:01)
> что в сумме с описательным байтом самих смещения и длинны будет 3 байта, и хоть удавись, а дальше в меньше не уложишься.
Мне кажется, что запихать в три байта и смещение и длинну, довольно неплохо :)
А если все совсем астрономическое, то заголовок займет SizeOf(Byte) + SizeOf(Int64) + SizeOf(Int64) = 33 Byte.
Тоже не очень плохо для описания почти Int64 объектов размером в Int64 :)
Хотя эта структура позволяет оперировать и почти Int128 объектов размером в Int128 :)
Его плюс в том, что он "дышит".
Когда с этим вдоволь поковыряешся, то начинаешь думать: "как все продуманно и грамотно сделано".
Во всяком случае со мной было так :)
P.S.
Я никого ни за что не агитирую.
Просто рассказала, как подобную задачу решили ребята из Microsoft`а.
← →
Riply © (2007-11-05 16:19) [47]> [46] Riply © (05.11.07 16:14)
Опечатка:
заголовок займет не 33, а 17 Byte.
← →
Riply © (2007-11-05 16:24) [48]>[42] sniknik © (05.11.07 16:04)
> только она, имхо, не подходит под условие в вопросе. (рациональности размещения строк)
Это только способ. Не обязательно его копировать один-в-один.
Я там написала: "Ну это надо подогнать под свои нужды."
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.039 c