diff --git a/source/app.d b/source/app.d index 2ad45a4..5b5bd12 100644 --- a/source/app.d +++ b/source/app.d @@ -1,5 +1,4 @@ import std.stdio; -import std.string; // Статическая таблица Gear (256 случайных 64-битных чисел) mixin(import("gear.d")); @@ -56,23 +55,14 @@ void main() size_t totalLength = data.length; writefln("Общая длина текста (в байтах): %d", totalLength); - // Параметры FastCDC (в байтах, адаптированы для текста) - size_t minSize = 100; // 100 байт - size_t normalSize = 200; // 200 байт (цель) - size_t maxSize = 500; // 500 байт + // Параметры FastCDC + size_t minSize = 100; + size_t normalSize = 200; + size_t maxSize = 500; - // Маски (для normalSize ~200 байт, log2(200) ≈ 8 бит, уровень нормализации 2) - // ulong maskS = (1UL << 8) - 1; // 8 бит: 0b11111111 - // ulong maskL = (1UL << 4) - 1; // 4 бита: 0b1111 - - // writefln("1UL: %u\n1UL << 8: %u\n(1UL << 8) - 1: %u", 1UL, 1UL << 8, maskS); - // writefln("1UL: %u\n1UL << 4: %u\n(1UL << 4) - 1: %u", 1UL, 1UL << 4, maskL); - // writeln(); - - ulong maskS = 0b11111111; + ulong maskS = 0b1111_1111; ulong maskL = 0b1111; - // Разбиение на чанки size_t offset = 0; size_t chunkNumber = 1; @@ -81,11 +71,9 @@ void main() { size_t remaining = totalLength - offset; size_t chunkSize = fastcdc(data[offset .. $], remaining, minSize, maxSize, normalSize, maskS, maskL); - // Вывод размера чанка и его содержимого writefln("Чанк %d: %d байт", chunkNumber, chunkSize); string chunkContent = cast(string) data[offset .. offset + chunkSize]; - // writefln("Содержимое: %s\n", chunkContent); - writefln("Содержимое: %s\n", chunkContent.length > 50 ? chunkContent[0 .. 50] ~ "..." : chunkContent); + writefln("Содержимое: %s\n", chunkContent); offset += chunkSize; chunkNumber++; }