Newsgroup: it.comp.lang.visual-basic
Titolo: Convertire un array in una variabile

Riposto la domanda xchè ho perso le eventuali risposte:
come posso convertire un'array di 4 byte...
dim array(4) as byte
in una variabile di tipo Single che ha casualmente 4 byte??? :-!
Ciao, FabioDB


Non prenderla come un'offesa, ma... la tua é follia allo stato puro...  :-))
CMQ un paio di dritte te le do...
Scelta più corretta: Ti fai lo XOR su tutti i bit e ti vai a vedere lo
standard IEEE754 circa le floating point (Commento: divertiti!).
Scelta più facile (per la quale però non ti grantisco niente!):
-Imposti il single = 0
-Fai l'OR con un long (anche questo 32 bit!) costruito ad hoc...
-Ora per ricostruire il long ricorda che se l'ordine logico (Motorola se non
sbaglio) dei byte in un long sarebbe 4321, ma per compatiblità con l' 8086
sui nostri PC vengono "usati" come 1243...
...Se non ti ho ancora fatto desistere rispondi al mex che vado avanti (ora
mi aspetta la pappa!)...
        Ciao
                Allanon

 ha scritto nel messaggio
news:X8Cy6.639$5Y1....@news1.tin.it...


 il pc in crash.
Ma quante ne sai????  :-))
Mi fai un esempietto di questa API se l'hai già usata? Mi sembra mooolto
interessante!!
        Ciao
                Allanon

 ha scritto nel messaggio news:9ah5r1$5aj2v
$1...@ID-67444.news.dfncis.de...


 ha scritto nel messaggio
news:X8Cy6.639$5Y1....@news1.tin.it...


 b=a(4)+256*a(3)+256*256*a(2)+256*256*256*a(1)
No, no e nno!!!
-Zero: Perché devi far fare ogni volta alla macchina un calcolo fra
costanti?
    *Al posto di 256*256 scrivi 65536
    *Al posto di 256*256*256 scrivi 16777216
-Primo: la famiglia dell' 8086 per ragioni compatibilità non dispone i bit
in maniera "ordinata". Supponedo di avere cifre di 8 bit non lo si
scriverebbe 1234, ma 4312...
-Secondo: l'ultimo bit é IL BIT DI SEGNO! Ovvero 256*256*256*a(1) = errore
Dovresti fare
if a(1)>127 then
    b=256*256*256*(a(1) AND 127)*(-1)+...
else
    b=256*256*256*a(1)+...
end if
*Terzo... QUESTA E' LA CODIFICA DEI LONG... Il single segue lo standard
IEEE754, ovvero 23 bit di mantissa, 8 di esponente e 1 di segno (mi pare
così)...
Se proprio vuoi dopo aver costruito un long così puoi (forse) farci l'OR o
XOR con un single così
Dim b as long
Dim S as single
b=....................
S=0
S=S OR b
        Ciao
                Allanon

 (dest As Any, Source As Any, ByVal numBytes As Long)
beh, mi hai anticipato :)
se ti serve una spiegazione sulla soluzione vai su:
http://vbsimple.virtualave.net/howto/031.htm
--
Fibia "Sakamoto" FBI
E-mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Sito Personale: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
Membro #25 delle Mitiche Brigate Takahashi sezione Sud


Ciao,
FDB>TKL

 all'altra. attenzione perchč se il numero di byte copiati eccede la
Che figata!!!
Ti ringrazio.
Ciao,
FDB>TKL

 ha scritto nel messaggio
news:9ajs4t$5hfq5$1...@ID-67444.news.dfncis.de...

Vedi di stare calmo perché se mi girano i maroni vengo lì e te lo faccio io
il "bit di segno"...
Ho solo postato la prima cosa che mi è venuta in mente, mentre tu ha postato
solo per rimproverarmi(non so poi di che...). Invece di scassare le sfere
agli altri con proteste isteriche da purista della programmazione perché non
proponi una soluzione EFFETTIVA al problema?

 Ho solo postato la prima cosa che mi è venuta in mente, mentre tu ha
postato solo per rimproverarmi(non so poi di che...). Invece di scassare le
sfere agli altri con proteste isteriche da purista della programmazione
perché non proponi una soluzione EFFETTIVA al problema?
Per cortesia, Jarni, non ci siete solo voi due a leggere il ng quindi vedi
di moderarti e di discutere civilmente. Grazie.
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------