Re: [OT] C help plz..
On Thu, Mar 16, 2000 at 03:04:53PM +1100, Shao Zhang wrote:
> Hi,
> 	If I have an unsigned long int, instead printing out its values
> 	in string using printf("%ld\n", my_var),
> 
> 	I would like to print it out as a 4-byte binary data. Is there
> 	any easy way to do this in C.
> 
> 	Thanks.
> Shao.
I pulled this out of a text book I have (modified from ints to longs):
#include <stdio.h>
#include <limits.h>
void 
bit_print_long(long l)
{
	long	i;
	long	n = sizeof(long) * CHAR_BIT;
	long	mask = 1 << (n - 1);
	for(i=1; i<=n; ++i) {
		putchar(((l & mask) == 0) ? '0' : '1');
		l <<= 1;
		if (i % CHAR_BIT == 0 && i < n)
		  putchar(' ');
	}
}
int
main(void)
{
	long	num = 2345687L;
	printf("Number %d is ", num);
	bit_print_long(num);
	putchar('\n');
	return 0;
}
-- 
+----------------------------------------------------+
| Eric G. Miller                        egm2@jps.net |
| GnuPG public key: http://www.jps.net/egm2/gpg.asc  |
+----------------------------------------------------+
Reply to: