Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - C - conversione int array a unsigned char
Forum - C/C++ - C - conversione int array a unsigned char

Avatar
Neo1986 (Ex-Member)
Pro


Messaggi: 88
Iscritto: 21/06/2010

Segnala al moderatore
Postato alle 10:25
Mercoledì, 29/02/2012
Buongiorno a tutti!

Ho un piccolo problema, causato penso dalla ruggine
accumulata dopo anni di inutilizzo del C.

Ho un array int dichiarato in questo modo:

int DatoRX(52);

L'array contiene una serie di 0 e 1.

A questo punto devo passare questo array ad una funzione (per l'invio su socket tcp) e questa richiede in ingresso un array "byte".

Come posso fare per convertire l'array da intero a unsigned char?

Grazie


Chiedere è lecito, rispondere è cortesia, rompere il caxxx è prassi!
PM
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Up
1
Down
V
Segnala al moderatore
Postato alle 14:45
Mercoledì, 29/02/2012
send(connection, (char *)DatoRX, sizeof(int) * 52, 0)

ci pensa il cast char * a convertire il tutto.

Ultima modifica effettuata da lorenzo il 29/02/2012 alle 14:46
Occhio ... non c'è nessuna conversione. I dati sono interi e interi restano. - nessuno - 29/02/12 20:05


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM
Avatar
Bonny (Member)
Expert


Messaggi: 435
Iscritto: 24/04/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 10:42
Mercoledì, 29/02/2012
So che esiste la funzione itoa(int, char *, int), il primo parametro intero viene convertito in un array di char l'ultimo parametro specifica la base del dato numerico da converire.
esempio:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (){
  5.  
  6.   int i;
  7.   char buffer [33];
  8.  
  9.    printf ("Enter a number: ");
  10.    scanf ("%d",&i);
  11.    itoa (i,buffer,10);
  12.    printf ("decimal: %s\n",buffer);
  13.    itoa (i,buffer,16);
  14.    printf ("hexadecimal: %s\n",buffer);
  15.    itoa (i,buffer,2);
  16.    printf ("binary: %s\n",buffer);
  17.  
  18. return 0;
  19. }


Ultima modifica effettuata da Bonny il 29/02/2012 alle 10:43


Bonny
PM