游程编码解密(C语言详解)
核心思想
对于游程编码的解密,和游程编码的编写是一个思路。重点的就是在填补的时候的一个逻辑转变。我相信你是没有问题的。(当然如果你还觉得没有思路,你可以再看看我写的代码。每个块的含义。以及再看一下我之前写的编码,哪里有详细的思维)
源码
//游程编码解密
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
void shifang(void *space){free(space);
}
void *fun(void *raw,int *num){unsigned char *dest=NULL;unsigned char *src=(unsigned char *)raw;//寻找结果长度int count=0;int tmp=*num;for (int i = 1; i <tmp ; i=i+2) {count=count+src[i];}printf("This result length is %d\n",count);//在堆上申请空间来存储数据dest=(char *)malloc(count);*num=count;//填充数据tmp=0;int foo=1;int j;for ( j = 0; j <count ; ++j) {if (tmp==src[foo]){foo+=2;tmp=0;}dest[j]=src[foo-1];tmp++;}//收尾j++;dest[j]=0;return dest;
}
int main(){char raw[]={0x11,0x3,0x22,0x02,0x34,0x01};int num=strlen(raw);char *result;result=fun(raw,&num);if (result==NULL){printf("Data error!\n");return -1;}for (int i = 0; i <num ; ++i) {printf("0x%02x\t",result[i]);}printf("\n");shifang(result);return 0;
}
输出结果:
游程编码解密(C语言详解)相关推荐
- elgamal算法加解密C语言,详解ElGamal加密算法
ElGamal公钥密码体制是1984年斯坦福大学的Tather ElGamal提出的一种基于离散对数问题困难性的公钥体制.1985年,Tather ElGamal利用ElGamal公钥密码体制设计出E ...
- 克鲁斯卡尔算法c语言,Kruskal算法(一)之 C语言详解
最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树. 例如,对于如上图G4所示的连通网可以有多棵权值总和 ...
- Drools 规则语言详解(上)
http://www.blogjava.net/guangnian0412/archive/2006/06/09/51574.html http://www.blogjava.net/guangnia ...
- c++指针详解_c语言详解sizeof
一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等. 它并不是函数. sizeof操作符以字节形式给出了其操作数的存储大小. 操作数可以是一个表达式或括在括 ...
- 排座系统c语言,2008noip排座位C语言详解.doc
2008noip排座位C语言详解 2008noip排座位C语言详解 2.排座椅 (seat.pas/c/cpp)D对同学上课时会交头接耳.同学们在教室中坐成了M行N列,坐在第i行第j列 的同学的位置是 ...
- DES加解密算法原理详解与实现
[DES密码编写] 1. Equipment (1) operating system version :WIN 10 (2) CPU instruction set: x 64 (3) softwa ...
- 有向图邻接矩阵c语言编程,邻接矩阵有向图(一)之 C语言详解
本章介绍邻接矩阵有向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实 ...
- 邻接矩阵用c语言,邻接矩阵无向图(一)之 C语言详解
本章介绍邻接矩阵无向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实 ...
- 如何用c语言编写stm32的程序吗,STM32入门C语言详解
<STM32入门C语言详解>由会员分享,可在线阅读,更多相关<STM32入门C语言详解(6页珍藏版)>请在人人文库网上搜索. 1.最新 料推荐阅读 flash : 芯片内部存储 ...
- 顺序栈基本操作(入栈和出栈)C语言详解
#include <stdio.h> #include <stdlib.h> /*顺序栈基本操作(入栈和出栈)C语言详解栈的具体实现(1)顺序栈(2)链栈栈的应用(1)回退 ( ...
最新文章
- eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析...
- 的远程烧写_农用气象环境远程监测管理系统
- VTK:图片之ImageMandelbrotSource
- OnDraw与OnPaint有什么区别
- python画PR曲线(precision-recall曲线)
- 【C语言】创建一个函数,利用该函数将字符串中的小写字母转换为大写字母
- WriteFreely:创建博客,建立社区
- 云端远程Ubuntu系统进行无桌面Web浏览器自动化测试
- linux SIGHUP
- iservice list方法_扩展IList对象,实现深拷贝扩展方法
- phpMyAdmin出现错误 Access denied for user 'root'@'localhost' (using password: NO)
- mysql复制表语句
- 第3章第11节:如何将众多图片制作成照片墙并作为幻灯片的背景 [PowerPoint精美幻灯片实战教程]
- 北京科技大学与北京工业大学计算机,请问北京工业大学和北京科技大学2010年计算机专业研究生的录取分数线是多少?谢谢!...
- 100M宽带的网络下载速度可以达到多少
- 程序员:耐得住寂寞,禁得住诱惑
- 【单片机原理及其应用】第五章定时器的介绍和习题分析
- Go语言--反射(reflect)
- DigiPCBA设计工具初体验!!!
- QT_disconnect