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

📄 base64_1.c

📁 base64码转换程序,不够完善
💻 C
字号:
#include	<stdio.h>
#define	UNIT	4000
#define	SOUR	(UNIT*3)
#define	MID	(UNIT*4)
#define	DEST	(UNIT*4)
#define	iioooooo	0xC0
#define	iiiioooo	0xF0
#define	iiiiiioo	0xFC
#define	ooiiiiii	0x3F
#define	ooooiiii	0x0F
#define	ooooooii	0x03
#define	oooooioo	0x04
#define	oooioooo	0x10
#define	oioooooo	0x40

char	base64(int 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[MID]=64;
	for(i=0;!feof(in);i++)
		sour[i]=fgetc(in);
	k=i;
	for(i=0;i<k/3;i++)
	{
		mid[4*i]=((sour[3*i] & iiiiiioo)/oooooioo);
		mid[4*i+1]=((sour[3*i] & ooooooii)*oooioooo+(sour[3*i+1] & iiiioooo)/oooioooo);
		mid[4*i+2]=((sour[3*i+1] & ooooiiii)*oooooioo+(sour[3*i+2] & iioooooo)/oioooooo);
		mid[4*i+3]=((sour[3*i+2] & ooiiiiii));
	}
	for(i=0;i<(k/3*4);i++)
	{
		printf("%d ",mid[i]);
		dest[i]=base64(mid[i]);
	}
	for(i=0;i<(k/3*4);i++)
		fprintf(out,"%c",dest[i]);
	fclose(in);
	fclose(out);
}
char	base64(int c)
{
	if(0<=c && c<=25)
		return((char)(c +'A'));
	else if(26<=c && c<=51)
		return((char)(c +'a'- 26));
	else if(52<=c && c<=61)
		return((char)(c +'0'- 52));
	else if(c==62)
		return('+');
	else if(c==63)
		return('/');
	else
		return('\0');
}

⌨️ 快捷键说明

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