base64.cpp

来自「实现base64的编码编码和解码」· C++ 代码 · 共 69 行

CPP
69
字号
#include <stdio.h>#include <string.h>#include <assert.h>#include "stdafx.h"#ifndef TRUE
#define TRUE  1
#endif

#ifndef FALSE
#define FALSE 0
#endif

typedef unsigned char  uint8;                      /* 无符号8位整型变量                        */
typedef signed   char    int8;                        /* 有符号8位整型变量                        */
typedef unsigned short uint16;                   /* 无符号16位整型变量                       */
typedef signed   short   int16;                     /* 有符号16位整型变量                       */
typedef unsigned int      uint32;                  /* 无符号32位整型变量                       */
typedef signed   int        int32;                     /* 有符号32位整型变量                       */
typedef float                 fp32;                      /* 单精度浮点数(32位长度)                 */
typedef double              fp64;                      /* 双精度浮点数(64位长度)                 */
typedef unsigned char   BOOL;                  uint8	GetVERFYCODE(uint8	*ptr,uint16 strlen,uint8 *ptr2)
{
	uint8 i,len;
	uint16 verfycode;
	const static uint8 ascTable[17] = {"0123456789ABCDEF"}; 

	for(i=0;i<strlen;i++)			//计算校验值
	{
		verfycode+=ptr[i];
	}

	if(verfycode>0xfff)			//校验值为4个字节
	{	
		for(i=0;i<4;i++)
		{
		ptr2[3-i]=ascTable[verfycode%16];
		len++;
		verfycode/=16;
		}
	}
	else if(verfycode>0xff)		//校验值为3个字节
	{	
		for(i=0;i<3;i++)
		{
		ptr2[2-i]=ascTable[verfycode%16];
		len++;
		verfycode/=16;
		}
	}
	else 						//校验值为2个字节
	{	
		for(i=0;i<2;i++)
		{
		ptr2[1-i]=ascTable[verfycode%16];
		len++;
		verfycode/=16;
		}
	}
	return len;
}int main(void){	uint8 *ptr="1234";	printf("%s",ptr);	}

⌨️ 快捷键说明

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