1 |
On Thursday 27 October 2005 13:52, Darren Dale wrote: |
2 |
> |
3 |
> Here is another test: |
4 |
> |
5 |
> #include <math.h> |
6 |
> #include <stdio.h> |
7 |
> |
8 |
> int main() { |
9 |
> printf("signbit(-1): %d\n", signbit(-1)); |
10 |
> printf("isnan(0.0/0): %d\n", isnan(0.0/0)); |
11 |
> printf("isinf(1.0/0): %d\n", isinf(1.0/0)); |
12 |
> return 0; |
13 |
> } |
14 |
> |
15 |
> which yields: |
16 |
> |
17 |
> signbit(-1): -2147483648 |
18 |
> isnan(0.0/0): 1 |
19 |
> isinf(1.0/0): 1 |
20 |
> |
21 |
> Do you know why signbit doesn't yield 1? |
22 |
|
23 |
The answer is in 'man signbit'. |
24 |
|
25 |
signbit is probably just ANDing your float value with 2^31=0x80000000 which |
26 |
reads -2147483648 if considered as a signed int (like in your printf). |
27 |
|
28 |
Miguel |
29 |
-- |
30 |
gentoo-science@g.o mailing list |