[C] Reprezentacja liczb w systemie hexadecymalnym

Qabrix
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 8 sty 2019, o 00:24
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Reprezentacja liczb w systemie hexadecymalnym

Post autor: Qabrix »

Dzień dobry,
mam taki oto kod:

Kod: Zaznacz cały

#include <stdio.h>
int main(int argc, char**argv){
    double a = (1.1 - 1.0)*10.0 - 1.0;
    printf("%a\n",a);
    return 0;
}
drukuje mi on 0x1p-50.
Wiem, że 0x oznaczna, że następne znaki będą w systemie hexadecymalnym,
ale jak mam rozumieć 1p-50?
Awatar użytkownika
Dasio11
Moderator
Moderator
Posty: 10225
Rejestracja: 21 kwie 2009, o 19:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 40 razy
Pomógł: 2362 razy

Re: [C] Reprezentacja liczb w systemie hexadecymalnym

Post autor: Dasio11 »

Jako \(\displaystyle{ 1 \cdot 2^{-50}}\), a na przykład 0x1.c2p-23 oznaczałoby \(\displaystyle{ \left( 1 + \frac{12}{16} + \frac{2}{256} \right) \cdot 2^{-23}}\).
Qabrix
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 8 sty 2019, o 00:24
Płeć: Mężczyzna
Lokalizacja: Wrocław

Re: [C] Reprezentacja liczb w systemie hexadecymalnym

Post autor: Qabrix »

Dzięki :D
ODPOWIEDZ