Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
11-1178440374
Dy1
2007-05-06 12:32
2007.11.25
оптимизатор JPEG


2-1194269229
Свой
2007-11-05 16:27
2007.11.25
Как загрузить файл из интернета


15-1193335005
Ломброзо
2007-10-25 21:56
2007.11.25
Чем и как настроить роутинг


15-1193149253
xayam
2007-10-23 18:20
2007.11.25
подскажите бесплатный php-хостинг


2-1193741998
Quart
2007-10-30 13:59
2007.11.25
Ячейка DBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский