Allora, vediamo un po'. Mi sembra che non parli di traduzione di file da un formato a un altro ma di "traduzioni" di numeri da un formato a un altro (dal floating point di IEEE a quello di Microsoft Basic).
Il linguaggio è C++.
La prima funzione riceve 2 argomenti ( 2 puntatori a float, src e dst, un puntatore è una variabile che contiene un indirizzo di memoria) e restituisce un intero (int fiee(....).
Poi viene dichiarata una union (una locazione di memoria condivisa da due o più variabili diverse) chiamata c. Per accedere ai dati di una union si usa la sintassi c.a (in questo caso ad esempio c'è l'istruzione successiva c.a=*src).
if(c.b) = viene eseguito il codice nella parentesi graffa successiva se c.b è vero, cioè se è diverso da 0.
Poi c'è scritto >> che non fa parte della sintassi C o C++.
Ipotizzo che il codice sia stato preso da una pagina HTML(XML, insomma da Web e quindi >> viene tradotto in >> che in C++ rappresenta l'operatore di shift per i bit. In questo caso è l'operatore di shift a destra che fa spostare di un posto a destra tutti i bit della variabile mettendo uno 0 sulla sinistra).
La stessa traduzione viene effettuata per & ( tradotto in &, l'operatore AND bit per bit in C++), per << tradotto in << (shift a sinistra)
La barra | indica l'operatore OR: l'istruzione
man |= exp;
è una forma contratta di man = (man | exp).
I numeri tipo 0x8000 sono scritti in esadecimale.
Il simbolo != sta per diverso ( <> in VB )
Passare il puntatore di una variabile a una funzione in C++ si può paragonare a passarla by ref in VB.
Scrivere (long)man significa fare un cast di man, che er un u_short e il suo valore viene convertito in long (il clng(variabile) di VB).
Tutto il codice compreso tra i simboli /* e */ è commento ( se il commento è su una linea può essere preceduto da //.
Con un po' di tempo è traduciblissimo in VB.
.................................
ciao.