18-12-2021, 19:58
Oddalasz się od celu, jak zapiszesz string "47" w tablicy to nie będzie tam siedział bajt 0x47, tylko dwa bajty, jeden dla 4 i drugi dla 7 wg tablicy ASCII, analogicznie 47f972f6 to bajt dla każdego znaku, czyli 64bity a nie spodziewana wartość 4 bajtowa (32bity) dla int32 lub float.
Możesz użyć zwykłego kalkulatora z WIN w trybie programisty, przepisać te bajty (jeśli odbierasz to jako literki i zapisujesz do tablicy char to drukujesz 4 hexy z tablicy jako hexy) i zamienić na postać dziesiętną by przekonać się oczętami, czy jest to zapis zmiennej całkowitej czy float. Float ma inną konstrukcję, część bitów odpowiada za mantysę, reszta za exponent, można tak wyrażać olbrzymie liczby, ale tylko w przybliżeniu. Int32 przedstawia dokładną i jednoznaczną wartość.
Jak w twoich działaniach napotykasz na błędy, traktując zapis 4 bajtów jak float to pewnie nie jest to float.
Możesz użyć zwykłego kalkulatora z WIN w trybie programisty, przepisać te bajty (jeśli odbierasz to jako literki i zapisujesz do tablicy char to drukujesz 4 hexy z tablicy jako hexy) i zamienić na postać dziesiętną by przekonać się oczętami, czy jest to zapis zmiennej całkowitej czy float. Float ma inną konstrukcję, część bitów odpowiada za mantysę, reszta za exponent, można tak wyrażać olbrzymie liczby, ale tylko w przybliżeniu. Int32 przedstawia dokładną i jednoznaczną wartość.
Jak w twoich działaniach napotykasz na błędy, traktując zapis 4 bajtów jak float to pewnie nie jest to float.
Miło być decenianym https://buycoffee.to/kaczakat