[net.sources] TOHEX.C

msimpson@bbncca.ARPA (Mike Simpson) (10/29/84)

#include <stdio.h>

char hex[] = "@ABCDEFGHIJKLMNO";
int bytes,sum;
unsigned long htonl();

main(argc,argv)
	char **argv;
{
	register i,len;
	register char *cp;

	len = 0;
	while ((i = getchar()) != EOF) {
		bytes++;
		sum += i;
		putchar(hex[i>>4]);
		putchar(hex[i&0xF]);
		if (++len > 32) {
			putchar('\n');
			len = 0;
		}
	}
	fprintf(stderr, "bytes %d, sum %d\n", bytes, sum);
	putchar('|');
	sum += bytes;
	sum = htonl(sum);
	cp = (char *)&sum;
	for (len = 0 ; len < 4 ; len++) {
		i = (*cp++ & 0xff);
		putchar(hex[i>>4]);
		putchar(hex[i&0xF]);
	}
	putchar('\n');
	exit(0);
}

#define nohtonl
#ifdef nohtonl	/* if not in library */
/*
 * "Host" to "net" byte order swappers.
 */
unsigned short htons(a)
	unsigned short a;
{
	unsigned short result;
	register char *sp = (char *)&a;
	register char *dp = (char *)&result;

	dp[1] = *sp++;
	dp[0] = *sp;
	return (result);
}


unsigned long htonl(a)
	unsigned long a;
{
	unsigned long result;
	register char *sp = (char *)&a;
	register char *dp = (char *)&result;

	dp[3] = *sp++;
	dp[2] = *sp++;
	dp[1] = *sp++;
	dp[0] = *sp;
	return (result);
}
#endif
-- 
   >> don't shoot me, I'm just trying to be helpful ... <<
   Mike Simpson, BBN
   msimpson@bbnccf  (Arpanet/Internet/CSNet)
   {decvax,ihnp4,ima,linus,masscomp,sunybcs,wjh12}!bbncca!msimpson (Usenet)
   617-497-2819 (Ma Bell)