Gå til innhold

Hvordan få "10001000" inn i en byte


Anbefalte innlegg

Videoannonse
Annonse

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 av icaruz
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...