Checksum软件的简单设计

相信大家平时在测试一些bin文件的时候,经常都会要求计算checksum值,其实就是校验和,非常的简单,比如下图这个软件:

我传入一个.bin文件,读出来的Checksum值就是0x0AD8B8。

那么,我如何用C语言终端来实现这个简单的软件做测试工作呢?

请看源码:

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    int fd ;
    int i ;
    unsigned int buffer[6680] = {0};
    unsigned int one , two , three , four ;
    unsigned int checksum = 0 ;
    fd = open("Midi_001.bin",O_RDONLY);
    if(-1 == fd){
        printf("打开文件失败!\n");
        return -1 ;
    }
    lseek(fd , 0 , SEEK_SET);
    read(fd , buffer , 6680);
    for(i = 0 ; i < 6680 / 4  ; i++)
    {
        one = buffer[i] & 0xff ;
        two = (buffer[i] & 0xff00) >> 8 ;
        three = (buffer[i] & 0xff0000) >> 16 ;
        four = (buffer[i] & 0xff000000) >> 24 ;
        checksum += one + two + three + four ;
    }
    printf("%d---->0x0%x\n",checksum,checksum);
    return 0;
}

运行结果:

运行结果和软件结果是一样的,那么这个简单的checksum软件就算设计成功了。

但是咱们考虑一个问题,如果,我要读更大bin文件呢?不止是6K,7K,可能是100M,500M,甚至更大呢?

这点留给大家思考下。

时间: 2024-11-10 10:37:31

Checksum软件的简单设计的相关文章

上位机-一个物联网方面的问题,做一个基于WiFi的楼宇能耗监测系统,软件部分怎么设计比较好,类似这个文档里的

问题描述 一个物联网方面的问题,做一个基于WiFi的楼宇能耗监测系统,软件部分怎么设计比较好,类似这个文档里的 http://www.docin.com/p-1224986285.html 之前并不知道上位机,也没学过C#.只学了一点php和J2EE.还需要做Android端,想问下各位前辈们的想法,是做成上位机吗?对WiFi那边的硬件也不是很了解, 本来是想做成网页或者客户端的,这个上位机是怎么做的? 怎么设计软件部分比较快一点... 还有APP怎么设计比较好? 解决方案 既然基于WI-FI,

《系统分析与设计方法及实践》一1.2 什么是软件分析与设计

1.2 什么是软件分析与设计 软件分析与设计是软件工程的重要组成部分,其定义目前还没有统一的标准.早期,软件工程专家B.W. Boehm将软件工程定义为:设计并构造计算机程序,以及为开发.运行和维护这些程序所必需的相关文件资料.Fritz Bauer如下定义软件工程:为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则.IEEE软件工程标准定义软件工程为:开发.运行.维护和修复软件的系统方法.尽管软件工程的具体定义不尽相同,且又有一些学者提出了更完善的定义,但都是

photoshop制作数码时尚数字化眼球的简单设计教程

给各位photoshop软件的使用者们来详细的解析分享一下制作数码时尚数字化眼球的简单设计的教程. 教程分享:   首先打开一幅男人脸部图片.   建新层,画一眼球大小的正圆选区,浅蓝到深蓝径向渐变.   添加蒙版,用黑色笔刷去除多余部分,图层模式叠加.   把金属素材拖入文档中.   添加蒙版,用黑色柔角笔刷去除多余部分.   图层模式叠加,添加色度/饱和度调整层,参数设置如下,并与纹理层形成剪贴蒙版(图层>创建剪贴蒙版)   打开一幅图片.   拖入文档中,ctrl+T缩小,添加蒙版,用黑色

简单设计并开发一个移动通信程序

网络越来越好,手机之间的互动已经是常态,王者荣耀.微信实时视频等,已经将多屏互动推到各到各种应用场景. 为了让大家能清楚地了解多屏互动,我将结合实例对移动设备实时通信进行研究,并系统性地呈现一些解决方案. 最开始,我尝试给大家展示如何建立一个最简单的点对点通信. 万事开头难,先假定一下需求: 局域网内通信. 写一个你看我画的程序. 纯客户端(一开始,我不打算让服务器参与). 下面对需求进行进一步的分析. 需求分析 我做了一个简单的原型设计,如下图,其实真正的状态比这个稍复杂,这里提供一下 原型链

link环境下,用codefirst制作的软件,如何设计权限系统?如何指定用户的权限?

问题描述 link环境下,用codefirst制作的软件,如何设计权限系统?如何指定用户的权限? link环境下,用codefirst制作的软件,如何设计权限系统?如何指定用户的权限? 解决方案 一般是分成用户.角色.权限三个表 权限描述每一个能操作不能操作的项目 角色包含可以操作的权限 用户包含它对应的角色

云软件——艺术字符设计!【推荐】

发现一款有趣的对字符图形艺术字进行转换设计的网页软件: ​中国设计网:ku.cndesign.com ( >﹏<.)-找了好久终于找到这种能够将矢量图转换成字符堆砌图的工具.100%缩放超逼真! 原图: 缩放50% 缩放100%

《系统分析与设计方法及实践》一第1章 软件分析与设计概述

软件系统分析与设计是软件工程(Software Engineering,SE)的重要组成部分,其目的是倡导以工程化的原理.原则和方法进行软件系统开发,是解决当时出现的"软件危机"的根本途径.

link中使用codefirst制作一个软件,如何设计多种权限角色的控制?

问题描述 link中使用codefirst制作一个软件,如何设计多种权限角色的控制? link中使用codefirst制作一个软件,如何设计多种权限角色的控制? 解决方案 http://www.cnblogs.com/ForEvErNoME/p/3624599.html

【推荐】云软件——艺术字符设计

发现一款有趣的对字符图形艺术字进行转换设计的网页软件: ?中国设计网:ku.cndesign.com ( >﹏<.)-找了好久终于找到这种能够将矢量图转换成字符堆砌图的工具.100%缩放超逼真! 原图: 缩放50% 缩放100%