⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 incr.cpp

📁 非常好用的五子棋游戏源码
💻 CPP
字号:
// Created:10-24-98
// By Jeff Connelly

// Incremental compression

// HIGHLY EXPERIMENTAL!

// Good input data: 00 01 02 03 04 05 06 07 08 09 ...

#include "stdafx.h"
#define EXPORTING
#include "comprlib.h"

#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <string.h>

// Encode incremental
void EXPORT incr_encode()
{
    register char c = 0, prev, begin;
    register int diff = 0, prevdiff, repeated = 0;

    while (!end_of_data())
    {
        // Previous values (zero first time)
        prevdiff = diff;
        prev = c;

        c = read_byte();
        diff = (prev - c);      // Figure difference

        if (prevdiff == prev)   // Repeating differences
        {
            if (!repeated)
            {
                begin = c;      // Beginning of repeated diffs, store first
            }
            ++repeated;
        }
        else if (repeated)      // End of repeating diffs, write values
        {
            write_byte(begin);
            write_byte(diff);
            write_byte(c);      // c = end
            if (begin - c != diff)
            {
                printf ("%d - %d != %d\n"
                        "%d - %d == %d\n",
                        begin, c, diff,
                        begin, c, begin - c);
            }
            repeated = begin = prev = c = diff = prevdiff = 0;  // Reset
        }
    }
}

// Decompress incrementally encoded file
void EXPORT incr_decode()
{
    register char begin, incr, end;
    register int i;

    while (!end_of_data())
    {
        // Read the values
        begin = read_byte();
        incr = read_byte();
        end = read_byte();

        // Decompression is simple: write values from 'begin' to 'end',
        // incrementing by 'incr', just use a for loop.
        for (i = begin; i < end; i += incr)
            write_byte(i);
        write_byte(end);
    }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -