|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1522
|
come inizializzo un array di byte?
Sto scrivendo un'applicazione java che comunica con un'altra applicazione tramite socket. Le funzioni che ho a disposizione sono read e write che prendono come argomenti un array di byte.
Quando definisco ad esempio byte[] a; come lo inizializzo? come faccio a scriverci dentro i byte che voglio siano spediti dall'altra parte? |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8878
|
Quote:
vedi se ti può essere utile usare la classe Byte .. oppure ci scrivi in modo diretto nel tipo primitivo ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1522
|
come faccio a scriverci in modo diretto?
vorrei riempire ogni byte dell'array con un numero che va da 0 a 255 in decimale oppure da 00 a FF in esadecimale ma ovviamene non posso utilizzare banalmente gli int visto che ognuno è rappresentato da 4 byte anche se il numero è inferiore a 255 e ne basterebbe uno solo. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
![]()
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1522
|
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
1) In Java un byte ha valori in un range -128 ~ +127 e basta. 2) Dipende da cosa ci devi fare con quei byte. Se da un int 212 (0xD4) ottieni un byte che ha quindi valore -44, dipende da cosa ci devi poi fare. Se da qualche parte vuoi riottenere un int, farai b & 0xFF, e riottieni 212 (0xFF è una costante int, il byte viene portato a int ma limitato, con la AND, a 8 bit). Intendo dire ... chissenefrega se diventa negativo ... dipende da cosa ci devi fare!!
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1522
|
dall'altra parte ho una applicazione symbian che in base ai byte che arrivano fa determinate operazioni. Questa applicazione non l'ho scritta io e quindi non posso modificarla.
Ad esempio se questa legge il byte FE ovvero 254 in decimale fa una determinata operazione. Ora come gli invio 254 in rete? int i=254; byte a=(byte)i; outputs.write(a); In rete viene effettivamente spedito 11111110 in binario? Ultima modifica di danyroma80 : 23-05-2007 alle 10:09. |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Certamente! Quello che viene spedito è appunto 0xFE (11111110 in binario). Poi dipende da come lo si vuole interpretare, se con segno allora è -2, se senza segno allora è 254. La questione è tutta lì.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:18.