Jaka jest najmniejsza wartość w C i typy zmiennych?

Jak w tytule:

 

  1. Jaka jest najmniejsza wartość zmiennej w C (nie jej wielkość bitowa)?

    char double minimalna = 0.0000001;

Taka?

 

  1. Ile typów podstawowych rozróżniamy w C ?

 

char

int

float

double

 

i do każdego signed i unsigned. ?

char double zawsze na propsie. Ale tak poza tym to dla mnie 0 < 0.0000…01. Ale nie wiem, może moja matematyka jest nie teges. Najmniejsza natomiast będzie chyba minus nieskończoność.

printf("%f", -1.0/0.0);

wypisze:

-inf

chyba nie da się mniejszej liczby już wypisać.

Wiesz, że dzielisz przez 0 i stąd to inf może być?

Nie może, tylko jest. Myślę, że chodziło właśnie o uzyskanie minus nieskończoności :wink: jako najmniejszej możliwej wartości.

Natomiast jeśli chodzi o najmniejszą w sensie wartości dyskretnej, to jest to stała DBL_MIN z float.h :slight_smile: I mam wrażenie, że zależy od kompilatora, np. #define DBL_MIN 2.2250738585072014e-308 czyli mniej niż 0.0000001; 

Chodzi mi o wartość większą od zera, ale tylko i bit

double minimalna =  0.000000;
to minimalna++ to będzie  0.000001 ??

Nie, bo ++ to operator inkrementacji, czyli zwiększenia o jeden. Zmienna minimalna po instrukcji minimalna++ będzie wynosiła 1. Jak chciałbyś mieć tylko jeden bit po przecinku 1, to jedyny sposób jaki przychodzi mi do głowy, to ustawienie wszystkich bitów na jeden, potem przesunięcie bitowe i negacja. Po przesunięciu bitowym wszystkie bity z wyjątkiem najmłodszego będą 1, a po negacji wszystkie staną się 0, a najmłodszy będzie 1.

double inkrementacja(double minimalna)
{
       return minimalna +  0.000001;
}

a taki patent?

Nie wiem co chcesz osiągnąć, ale na pytanie w temacie masz odpowiedź np. tutaj: https://msdn.microsoft.com/en-us/library/s3f49ktz%28v=vs.80%29.aspx

dzięki to jest to

To nie zadaiała, gdyż 1/10 w systemie dwójkowym nie ma skończonej mantysy.

Najpierw uzupełnijmy braki wiedzy:

 

Najmniejsza wartość:

http://pl.wikipedia.org/wiki/Liczba_zmiennoprzecinkowa#Podstawa_matematyczna

 

NaNy, Infy i tym podobne

http://pl.wikipedia.org/wiki/Liczba_zmiennoprzecinkowa#Implementacje_sprz.C4.99towe