Base64_解码 C

int change(char ch)    //解码表转换   转成2进制 由于小于64  所以最多6位二进制
{
    if( ch>='A'&&ch<='Z' )
        return ch-'A';
    if( ch>='a'&&ch<='z' )
        return ch-'a'+26;
    if( ch>='0'&&ch<='9' )
        return ch-'0'+52;
    if( ch=='+' )
        return 62;
    else
        return 63;
}


void base64(char str[],int len)    //将6位变成8位 不够从下一个数二进制补上   
{                                      //最后一个数位数不够 在末尾补上0 凑出8位二进制  
    int t=0;                           //将8位变成ASCII对应的值 输出 解码完成
    for(int i=0; i<len; i+=4)
    {
        s[t++]=((str[i]<<2)|(str[i+1]>>4));
        if(i+2 < len)
            s[t++]=((str[i+1]<<4)|(str[i+2]>>2));
        if(i+3 < len)
            s[t++]= ((str[i+2]<<6)|str[i+3]);
    }
    tot=t;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值