Показать сообщение отдельно
Старый 28.10.2008, 19:04   #10
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
charUUEcode(char *in,unsigned size){
    
unsigned code_size=(size/double(3)+1)*4+1;
    
char *out=new char[code_size];
    
unsigned char s[3];
    
unsigned char c[4];
    
unsigned i,j,k;

    
k=0;
    for(
i=0;i<size;i+=3){

        for(
j=0;j+i<size && j<3;j++){
            
s[j]=in[i+j];
        }
        for(;
j<3;j++)
            
s[j]=0;

        
c[0]=(s[0]&0xFC)>>2;
        
c[1]=((s[0]&0x03)<<4)+((s[1]&0xF0)>>4);
        
c[2]=((s[1]&0x0F)<<2)+((s[2]&0xC0)>>6);
        
c[3]=(s[2]&0x3F);

        for(
j=0;j<4;j++)
            
c[j]+=32;

        for(
j=0;j<4;j++)
            
out[k+j]=c[j];
        
k+=j;

    }
    
out[k]=0;

    return 
out;

charUUEdecode(char *in,unsigned &size){
    
unsigned code_size=(size/double(4)+1)*3+1;
    
char *out=new char[code_size];
    
unsigned char c[3];
    
unsigned char s[4];
    
unsigned i,j,k;

    
k=0;
    for(
i=0;i<size;i+=4){
        for(
j=0;j+i<size && j<4;j++){
            
s[j]=in[i+j];
        }
        for(;
j<4;j++)
            
s[j]=0;

        
c[0]=s[0]-32;
        
c[1]=s[1]-32;
        
c[0]<<=2;
        
c[0]|=(c[1]>>4)&0x03;
        
c[1]<<=4;
        
c[2]=s[2]-32;
        
c[1]|=(c[2]>>2)&0x0F;
        
c[2]<<=6;
        
c[2]|=(s[3]-32)&0x3F;


        for(
j=0;j<3;j++)
            
out[k+j]=c[j];
        
k+=j;


    }
    
out[k]=0;
    
size=k;

    return 
out;

это вот на С++

Сообщение от Phantom_wc Посмотреть сообщение
Вот блин. Сейчас я буду жёстко ламерить. Нифига не понял эту строку:
head=bytes[0]&0xff|bytes[1]<<8&0xff00;
Видимо какие-то операции с битами. Объясните плиз, как оно работает или дайте ссылку какую-нибудь полезную, желательно на русском.
& - как парвило коньюнкция
| - дизъюнкция
<< - сдвиг влево
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

Последний раз редактировалось impersonalis, 28.10.2008 в 20:57.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (28.10.2008)