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

📄 base64_2.c

📁 base64码转换程序,不够完善
💻 C
字号:
#include	<stdio.h>
#define	UNIT	4000
#define	SOUR	(UNIT*4)
#define	MID	(UNIT*4)
#define	DEST	(UNIT*3)
#define	iiiiii	0x3F
#define	iioooo	0x30
#define	ooiioo	0x0C
#define	ooooii	0x03
#define	ooiiii	0x0F
#define	iiiioo	0x3C
#define	oooioo	0x04
#define	oioooo	0x10
#define	ioooooo	0x40

int	base64(char c);

main()
{
	FILE *in,*out;
	char sour[SOUR],dest[DEST];
	int mid[MID];
	int i,k;
	in=fopen("In.txt","r");
	out=fopen("Out.txt","w");
	for(i=0;i<SOUR;i++)
		sour[i]='\0';
	for(i=0;i<DEST;i++)
		dest[i]='\0';
	for(i=0;i<MID;i++)
		mid[i]='64';
	for(i=0;!feof(in);i++)
		sour[i]=fgetc(in);
	k=i;
	for(i=0;i<k;i++)
		mid[i]=base64(sour[i]);
	i=0;
	while(i<k)
	{
		printf("%d ",mid[i]);
		i++;
	}
	for(i=0;i<k/4;i++)
	{
		dest[3*i]= (char)((mid[4*i] & iiiiii)*oooioo+(mid[4*i+1] & iioooo)/oioooo);
		dest[3*i+1]= (char)((mid[4*i+1] & ooiiii)*oioooo+(mid[4*i+2] & iiiioo)/oooioo);
		dest[3*i+2]= (char)((mid[4*i+2] & ooooii)*ioooooo+(mid[4*i+3] & iiiiii));
	}
	for(i=0;i<(k/4*3);i++)
		fprintf(out,"%c",dest[i]);
	fclose(in);
	fclose(out);
}
int	base64(char c)
{
	if('A'<=c && c<='Z')
		return((int)(c -'A'));
	else if('a'<=c && c<='z')
		return((int)(c -'a'+ 26));
	else if('0'<=c && c<='9')
		return((int)(c -'0'+ 52));
	else if(c=='+')
		return(62);
	else if(c=='/')
		return(63);
	else if(c=='\0')
		return(64);
}

⌨️ 快捷键说明

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