icaruz Skrevet 20. mars 2006 Rapporter Del Skrevet 20. mars 2006 Jeg lurer på hvordan man skal få lagt en binær verdi (f.eks 10001000) inn i en byte. Feks noe slikt som: byte b = "10001000"; eller byte b = 0b10001000; Jeg ønsker helst ikke å gå veien om hex. Lenke til kommentar
oyvind_b Skrevet 21. mars 2006 Rapporter Del Skrevet 21. mars 2006 byte b = Byte.parseByte("10001000", 2); Øyvind Lenke til kommentar
icaruz Skrevet 21. mars 2006 Forfatter Rapporter Del Skrevet 21. mars 2006 (endret) Det går ikke. Java opererer med signed byte, dvs at største byteverdi er 01111111, og minste byteverdi er -10000000. Prøver man å legge inn: byte b = Byte.parseByte("10001000", 2); får man feilmelding: Exception in thread "main" java.lang.NumberFormatException: Value out of range. Value:"10001000" Radix:2 -- Hm. Det ser ut som hele problemstillingen er faller bort, siden en javabyte er 4 byte: http://www.jguru.com/faq/view.jsp?EID=13647 "In the Java Virtual Machine, bytes, shorts and ints are all four bytes long. Hence, when you add two bytes together you are actually performing 32-bit arithmatic. And when you store the result back into a byte, you're not even lopping off the high 24 bits -- because the number is signed, and you need to retain the sign bit." Det er jo mulig at JVM er forandret siden 2000.. Endret 21. mars 2006 av icaruz Lenke til kommentar
oyvind_b Skrevet 21. mars 2006 Rapporter Del Skrevet 21. mars 2006 Ah, nettopp. Mitt svar var generelt, så jeg tenkte ikke på at eksempelet ditt var større enn maks. Øyvind. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå