Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Bittit väärinpäin

kayttaja-3842 [21.03.2012 19:17:11]

#

Tervehdys kaikki,

Törmäsin ongelmaan kirjoittaessani binääri tiedoston lukijaani. Nimittäin bitit menevät väärinpäin.

Tiedosto formaatissani data on asetettu idealla [1 tavu][4 tavua].

Alla olevassa esimerkissä tiedot taulukkoon tulevat [0] = 0x00 [1] = 0x00 [2] = 0x00 [3] = 0x00 [4] = 0x0d

	char _cDataBuffer[5] = {0};

	int t = 0;

	if( readData( _cDataBuffer, 5 ) )
	{
		ui8DataType_ = (UINT8 *)_cDataBuffer;
                // Tässä bitit tulevat t integeriin väärin päin taulukossa 0x00 0x00 0x00 0x0d. T arvoksi tulee nytten 0x0d000000 vaikka pitäs saada 0x0000000d
		t = *(int *)( _cDataBuffer + sizeof( UINT8 ) );
	}

jalski [21.03.2012 20:53:20]

#

Onko tuossa ongelmaa? Huomioi Intel arkkitehtuurin käyttämä bitti järjestys: tavussa big-endian, mutta tavut little-endian järjestyksessä integerissä.

Vastaus

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

Tietoa sivustosta