Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357

    [VB6] importare variabile REAL*4

    Ho una funzione che restituisce un numero reale mettendolo in un array di 4 byte

    La rappresentazione di questo numero è real*4 cioè:

    codice:
    BYTE1      BYTE2     BYTE3     BYTE4
    SXXXX XXXX XMMM MMMM MMMM MMMM MMMM MMMM
    dove S è il bit per il segno, le X i bit dedicati all'esponente e le M quelli per la mantissa.

    Come faccio a leggere questo numero?
    In altre parole, come converto quel numero in float?


  2. #2
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    up

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma il numero da dove viene? Dove lo hai memorizzato nel tuo programma?

  4. #4
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    No, il numero viene da un PLC

  5. #5
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    A quel plc accedo con il protocollo modbus.
    In pratica ho una libreria di funzioni che mi permettono di connettermi al plc e leggere ciò che è scritto in una dato registro.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ripeto la domanda ... dove lo hai memorizzato nel tuo programma?

  7. #7
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    scusa, in un array di byte

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Mi mostri come hai dichiarato l'array ?

  9. #9
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    codice:
    Private f_ReadBufferW(4) As Byte

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dichiara la API CopyMemory e una variabile single

    Private Declare Sub CopyMemory _
    Lib "kernel32" Alias "RtlMoveMemory" _
    (dest As Any, source As Any, ByVal bytes As Long)

    Private f_ReadBufferW(4) As Byte
    Private v As Single

    e poi nel tuo codice scrivi

    CopyMemory v, f_ReadBufferW(0), 4

    Controlla il contenuto di v ... dovrebbe essere quella che ti aspetti ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.