日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

UUencode

系統(tǒng) 1911 0

uuencode是將二進(jìn)制文件轉(zhuǎn)換為文本文件的過程,轉(zhuǎn)換后的文件可以通過純文本e-mail進(jìn)行傳輸,在接收方對(duì)該文件進(jìn)行uudecode,即將其轉(zhuǎn)換為初始的二進(jìn)制文件。   

uu 編碼   

uuencode 編碼方式用于將任意的二進(jìn)制文件轉(zhuǎn)換為文本文件,比如email.轉(zhuǎn)換后的文件中僅包含可打印字符.   

uuencode 運(yùn)算法則將連續(xù)的 3字節(jié)編碼轉(zhuǎn)換成 4字節(jié)(8-bit 到 6-bit)的可打印字符. 該編碼的效率高于Hex 格式.   

從二進(jìn)制文件中讀取 3字節(jié)的數(shù)據(jù), 表示如下(a7 表示 a字節(jié)的第 7位):   

a7a6a5a4a3a2a1a0 b7b6b5b4b3b2b1b0 c7c6c5c4c3c2c1c0   

轉(zhuǎn)換它們到4字節(jié)里為如下所示:   

0 0 a7a6a5a4a3a2 0 0 a1a0b7b6b5b4 0 0 b3b2b1b0c7c6 0 0 c5c4c3c2c1c0   

然后, 每個(gè)字節(jié)再加 0x20轉(zhuǎn)換為可打印的字符.   

注意: 如果是一個(gè) 0字節(jié)那它應(yīng)該被轉(zhuǎn)換為0x60而不是0x20, 因?yàn)?前引用'`')優(yōu)于 0x20(空格' ').   

例如: 從文件中讀取的 3字節(jié)如下:   

14 0F A8   

00010100 00001111 10101000   

轉(zhuǎn)換為 6-bit:   

000101 000000 111110 101000   

每字節(jié)高兩位補(bǔ) 0后為:   

00000101 00000000 00111110 00101000   

最后每字節(jié)再加 0x20,則 4字節(jié)輸出應(yīng)該為:   

25 60 5E 48   

注意: 00字節(jié)被轉(zhuǎn)換為 0x60而不是 0x20.   

因此, 在一個(gè) uuencoded文件中僅包含字符 0x21 '!'到 0x60 '`',它們都是可打印和可被 email傳送的.   

這個(gè)轉(zhuǎn)換過程也意味著 uuencoded 文件要比原文件大 33%的.

流程如下:

UUencode

其轉(zhuǎn)換源碼如下:

    //header
#pragma once
#define ENCODE_BYTE(b) (((b) == 0) ? 0x60 : ((b) + 0x20)) 
#define DECODE_BYTE(b) ((b == 0x60) ? 0 : b - 0x20)

void Byte3ToAsc4(unsigned char inbyte[3],unsigned char outAsc[4]);
void Asc4ToByte3(unsigned char inAsc[4],unsigned char outByte[3]);

//body
#include "StdAfx.h"
#include "UUencode.h"
//encode
void Byte3ToAsc4(unsigned char inbyte[3],unsigned char outAsc[4])
{
	outAsc [0] = ENCODE_BYTE ((inbyte [0] & 0xFC) >> 2);
	outAsc [1] = ENCODE_BYTE (((inbyte [0] & 0x03) << 4) + ((inbyte [1] & 0xF0) >> 4));
	outAsc [2] = ENCODE_BYTE (((inbyte [1] & 0x0F) << 2) + ((inbyte [2] & 0xC0) >> 6));
	outAsc [3] = ENCODE_BYTE (inbyte [2] & 0x3F);
}
//decode
void Asc4ToByte3(unsigned char inAsc[4],unsigned char outByte[3])
{
	outByte [0] = DECODE_BYTE (inAsc [0]); 
	outByte [1] = DECODE_BYTE (inAsc [1]);
	outByte [0] <<= 2;
	outByte [0] |= (outByte [1] >> 4) & 0x03;
	outByte [1] <<= 4;
	outByte [2] = DECODE_BYTE (inAsc [2]);
	outByte [1] |= (outByte [2] >> 2) & 0x0F;
	outByte [2] <<= 6;
	outByte [2] |= DECODE_BYTE (inAsc [3]) & 0x3F;
}
  



UUencode


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 舞钢市| 石台县| 施甸县| 开鲁县| 波密县| 万全县| 靖江市| 禄劝| 额济纳旗| 锡林郭勒盟| 鹤岗市| 土默特右旗| 伊宁县| 亚东县| 南澳县| 盐山县| 晋宁县| 抚顺县| 潼南县| 江源县| 信宜市| 霍林郭勒市| 沅江市| 昔阳县| 定南县| 北宁市| 金门县| 永川市| 鹿泉市| 南京市| 建德市| 安阳市| 徐州市| 鄂伦春自治旗| 尼木县| 犍为县| 安阳县| 墨江| 精河县| 兰考县| 长兴县|