konverze typu XC32

Libor Konečný support na mikrovlny.cz
Sobota Březen 19 21:24:44 CET 2022


Kde se to tam vezme to taky nechapu.

sizeof WORD je 2.

vyresil jsem to salamounsky.

pretypoval jsem na DWORD  a provedl  & 0xFFFF a uz to funguje korektne.

LK


Dne 19.03.2022 v 21:16 Miroslav Mraz napsal(a):
> Všimněte si, že 84542584 je 0x050A0478 a tedy spodní 2 byte souhlasí. 
> Kde se tam vezme to 0x050A navrchu je otázka. Zkusil bych něco jako
> static_assert (sizeof (WORD) == 2, "error") C++ compile-time nebo v 
> čistém C-čku assert (sizeof (WORD) == 2) runtime a podle toho zkoušel 
> dál. XC32 neznám.
>
> Mrazík
>
> Dne 19. 03. 22 v 20:18 Libor Konečný napsal(a):
>> Zdravim fachmany na C pod XC32.
>>
>> Resim problem, ktery se mi zda jednoduchy, ale vysledkem je nesmyslna 
>> hodnota.
>>
>>
>> mam
>>
>> WORD a;
>>
>> float tf;
>>
>> hlavni program
>>
>> a=0x0478;  coz je dec 1144 (ale ta hodnota se meni v case, tady je 
>> fixni jen pro naz)
>>
>> tf=(float)a;
>>
>> tak vysledkem print je 84542584.0
>>
>> kdyz tam dam natvrdo tf=1144; pak mi to pri tisku vrati spravne 1144.0
>>
>> Nechapu
>>
>> Muze mi nekdo prosim poradit jak se to ma spravne pretypovat, aby mi 
>> print tiskl  spravnou hodnotu 1144.0?
>>
>> Dekuji moc
>>
>> Libor
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list