Poprzedni temat «» Następny temat
Typy danych w javie
Autor Wiadomość
kaliska5 


Wiek: 26
Dołączył: 01 Maj 2008
Posty: 331
Skąd: z nienacka
Wysłany: 2012-09-23, 19:46   Typy danych w javie

Witam.Dłubie ostatnio w Javie i mam mały problem.Potrzebuje przesłać przez port COM dane ale natrafiłem na problem zakresu zmiennych.Byte zajmuje 1bajt(w sam raz) ale może przyjmować wartości -128,+127.Czy mógłby mi ktoś wytłumaczyć w jaki sposób można by zmieścić w bajcie dane 0-255 ?
 
 
     
edwacc



Dołączył: 14 Paź 2008
Posty: 147
Skąd: świętokrzyskie knieje
Wysłany: 2012-09-23, 20:23   Re: Typy danych w javie

Typ byte w Javie z definicji moze przyjmowac wartosci -128..127.
W przypadku wysylania po RS232 nie ma jednak znaczenia jaka wartosc widzi Java, ale ulozenie bitow, gdyż odbiornik moze to przeczytac jako osmiobitowa wartosc typu "unsigned" (bez stosowania U2). To kwestia "dogadania" sie urzadzen.

Natomiast sa sposoby aby uzyskac 8b wartosci z zakresu 0..255, otoz trzeba umiescic wartosc w typie np. int (ktory ma 32b) i wyslac tylko 8 najmlodszych bitow. Mozna to zrobic np. za pomoca maskowania z wartoscia 0x000F:

Kod:
int i = 0xAAAA;
i = i & 0x000F;
//wynik: i = 0x000A


Ale z tego co pamietam biblioteki do obslugi portu com uzywaja typu char, ktory jest 16-bitowy.
 
     
kayron 
PLC FATEK, automatyka na życzenie



Wiek: 37
Dołączył: 21 Wrz 2008
Posty: 1857
Skąd: Poland
Wysłany: 2012-09-23, 20:45   

e.. z tego co pamiętam to INTIGER jest 16Bitowy, a CHAR 8-bitowy.
 
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Strona wygenerowana w 0,02 sekundy. Zapytań do SQL: 10