Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: binärin lukeminen exestä

etsubu [09.11.2010 15:12:06]

#

Hei! ajattelin kysyä tietäsikö joku keinon lukea binääriä exestä javalla?
Jos ei niin olisiko joku ohjelma jolla voisi lukea?
Kiitos!

Metabolix [09.11.2010 15:14:09]

#

Samalla tavalla sitä luetaan kuin muitakin tiedostoja. Mahdatkohan nyt ihan ymmärtää, mitä se tiedosto oikeasti sisältää?

etsubu [09.11.2010 15:18:28]

#

en kovin hyvin mutta mietin voiko sitä lukea niin että tulisi 0 ja 1 ulos

Metabolix [09.11.2010 15:26:09]

#

Yhdessä tavussa (byte) on kahdeksan bittiä (bit), jotka saat erotettua siitä bittioperaatioilla.

byte b = 123;
int alinbitti = ((b >> 0) & 1);
int ylinbitti = ((b >> 7) & 1);
System.out.println("Alin (0.) bitti: " + alinbitti + ", ylin (7.) bitti: " + ylinbitti);

Se, että tiedosto sisältää "binääriä", tarkoittaa, että tiedostossa olevia tavuja ei ole järkevää yrittää tulkita tekstinä. "Binääridatan" käsittely ei useinkaan edellytä puuttumista yksittäisiin bitteihin, ja varsinkaan ei ole järkevää muuttaa dataa ykkösiksi ja nolliksi.

_Pete_ [11.11.2010 14:22:12]

#

Kun olet lukenut exe binäärin ohjelmaan voit tulostaa ne tähän tyyliin:

  int foo = 432465;
  System.out.println(Integer.toBinaryString(foo));

Joka tulostaa: 1101001100101010001

etsubu [11.11.2010 15:07:16]

#

Sain homman toimimaan joten kiitoksia avusta!!!

Metabolix [11.11.2010 16:31:15]

#

Peten ratkaisussa on vielä sellainen puute, että se jättää luvun vasemmalta puolelta nollat tulostamatta, jolloin esimerkiksi tiedostossa olevat bitit 00000001 00000001 00000001 luettuina tavu kerrallaan tulostuisivat virheellisesti muodossa 111.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta