Есть файловый поток, мне нужно подсчитать количество подряд идущих одинаковых бит в нём. Как это лучше сделать? Можно, конечно, перевести поток в строку и потом байты перегнать в биты, но поток может быть очень большим, в строке не уместиться.
Например, последовательность бит: 000110100001
А нужно выдать число повторов бита: 3 2 1 1 4 1
Этот топик читают: Гость
Ответов: 1926
Рейтинг: 172
|
|||
карма: 9 |
|
Ответов: 4641
Рейтинг: 334
|
|||
-del-
|
|||
карма: 1 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Ravilr писал(а): создай массив символов, а затем ArrayCountRepeatsДля этого случая не пойдет. Ему надо считать повторы до изменения состояния. Это только через stream можно сделать с побайтовым чтением, сохраняя состояние последнего бита для дальнйшего анализа |
|||
карма: 22 |
|
Ответов: 4641
Рейтинг: 334
|
|||
nesco писал(а): Для этого случая не пойдета точно.. неугледел.. не пойдет. |
|||
карма: 1 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
3042, если не секрет, для чего такой битовый анализ нужен
|
|||
карма: 22 |
|
Ответов: 1926
Рейтинг: 172
|
|||
nesco писал(а): Это только через stream можно сделать с побайтовым чтением, сохраняя состояние последнего бита для дальнйшего анализаМожет, в IC есть более простые решения? nesco писал(а): 3042, если не секрет, для чего такой битовый анализ нужен Хочу попробовать архиватор сделать. А то всё плееры да плееры |
|||
карма: 9 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
3042 писал(а): Хочу попробовать архиватор сделать. А то всё плееры да плеерыЯ тоже когда-то хотел такую фичу сделать, забросил, к тому же, не очень понятно, что будет лучше: записывать одним байтом значение, или одним байтом кол-во битов повторяющихся: вот будет например 01010101, и ты будешь писать в каждый байт следующую структуру <бит><кол-во> (например для примера выше 0111011101110111) |
|||
карма: 10 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Вообще-то, такой метод, только для dword применялся для упаковки битмапов. Чем больше фона, тем силнее сжимается картинка
|
|||
карма: 22 |
|
Ответов: 1926
Рейтинг: 172
|
|||
Assasin, дам небольшую наводку: составлять битовые столбцы и из них - новую последовательность бит. Например, порядок битов такой:
00111101
00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00111101 00001101 00001010 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 01001000 01101001 01000001 01110011 01101101 00100000 00110100 00101110 00110000 00110010 00100000 Это не придуманный набор, это "переведённый" License.txt. Если первый столбец "уложить" в строку, присоединить к нему второй столбец, также "уложенные" в строку, то тогда будет последовательноть поинтереснее... |
|||
карма: 9 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
3042 писал(а): Это не придуманный набор, это "переведённый" License.txt. Если первый столбец "уложить" в строку, присоединить к нему второй столбец, также "уложенные" в строку, то тогда будет последовательноть поинтереснее...Кхм... пока что-то не сильно видно, что именно ты хочешь сделать, может, скинешь схему того, как ты это перевел Я со схем (как и с исходников компонентов) быстрее понимаю, что там делается А где ты взял второй столбец? ------------ Дoбавленo в 15.49: А, понял, это лишь перевод из байтов информации в биты |
|||
карма: 10 |
|
Ответов: 1926
Рейтинг: 172
|
|||
карма: 9 |
| ||
файлы: 1 | code_19129.txt [1.6KB] [212] |
Ответов: 4641
Рейтинг: 334
|
|||
[offtop]3042, сверни свою портянку из битов... некрасиво как то ![/offtop]
|
|||
карма: 1 |
|
Ответов: 1926
Рейтинг: 172
|
|||
[offtop]Ravilr, это как?[/offtop]
|
|||
карма: 9 |
|
Ответов: 1379
Рейтинг: 86
|
|||
[offtop]3042, в тег scroll [/offtop]
|
|||
карма: 0 |
|
Ответов: 1926
Рейтинг: 172
|
|||
Кто-нибудь знает, какими архиваторами пользуются на западе?
Какие есть хорошие архиваторы вообще? |
|||
карма: 9 |
|