On 2018-03-24 21.05.56 -0500, Edgar Pettijohn wrote:
> #include <stdio.h>
> #include <stdlib.h>
> #include <math.h>
> 
> int
> main(void)
> {
>     uint32_t n = arc4random();
> 
>     printf("arc4random %d\n", n);
>     printf("abs %d\n", abs(n));
> 
>     return 0;
> }
> 
> Which is well and good. However, I get the following output.
> 
> laptop$ ./a.out
> arc4random 247165650
> abs 247165650
> laptop$ ./a.out
> arc4random 2012715611
> abs 2012715611
> laptop$ ./a.out
> arc4random 222644175
> abs 222644175
> laptop$ ./a.out
> arc4random -843593186
> abs 843593186

// -----

#include <stdio.h>                                                              
#include <stdlib.h>                                                             
#include <inttypes.h>                                                           
  
#include <math.h>                                                               

int
main(void)
{
    uint32_t n = arc4random();

    printf("arc4random %"PRIu32"\n", n);
    printf("arc4random with %%d %d\n", n);
    printf("abs %d\n", abs(n));

    return 0;
}

//

output:

~% ./a.out
arc4random 1647540484
arc4random with %d 1647540484
abs 1647540484
~% ./a.out
arc4random 3569752639
arc4random with %d -725214657
abs 725214657


More docs:
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/inttypes.h.html

Reply via email to