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

📄 mkcrc32table.c

📁 Sun公司Dream项目
💻 C
字号:
/*
 * The contents of this file are subject to the terms
 * of the Common Development and Distribution License
 * (the "License").  You may not use this file except
 * in compliance with the License.
 *
 * You can obtain a copy of the license at
 * http://www.opensource.org/licenses/cddl1.php
 * See the License for the specific language governing
 * permissions and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL
 * HEADER in each file and include the License file at
 * http://www.opensource.org/licenses/cddl1.php.  If 
 * applicable, add the following below this CDDL HEADER, 
 * with the fields enclosed by brackets "[]" replaced 
 * with your own identifying information: 
 * Portions Copyright [yyyy]
 * [name of copyright owner]
 */ 

/*
 * $(@)MkCrc32Table.c $Revision: 1.1.1.1 $ $Date: 2006/04/17 22:47:31 $
 * 
 * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
 */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include "cobjs/Types.h"

static u32 table[256];
static u32 calculateCrc32(int byte);

void
main(int argc, char **argv)
{
    unsigned i;

    for (i = 0; i < 256; i++) {
	table[i] = calculateCrc32(i);
    }

    printf("#include \"mmp/Crc32Table.h\"\n");
    printf("#include \"cobjs/Types.h\"\n");
    printf("\nconst u32 crc32Table[256] = {");

    for (i = 0; i < 256; i++) {
	if ((i % 4) == 0) {
	    printf("\n    /* %3u: */  ", i);
	}
	printf("0x%08lx", table[i]);
	if (i != 255) {
	    printf(", ");
	}
    }
    printf("\n};\n");
    exit(0);
}

static u32
calculateCrc32(int byte)
{
    int j;
    u32 crc;

    crc = byte;

    for (j = 8; j > 0; j--) {
	if (crc & 1) {
	    crc = (crc >> 1) ^ 0xEDB88320UL;
	} else {
	    crc >>= 1;
	}
    }
    return crc;
}

⌨️ 快捷键说明

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