2.11BSD/src/lib/ccom/TEST/tst_sgncmp.c

int zero = 0;
int selfinv;
int i;
int j;
int k;

main()
{
	selfinv = ~(((unsigned)~0) >> 1);
	i = selfinv + 0101;	/* neg */
	j = selfinv - 0100;	/* pos */
	printf("everything should be true\n");
	printf("selfinv = 0%o\n", selfinv);
	printf("zero = %d\n", zero);
	printf("i = 0%o = %d.\n", i, i);
	printf("j = 0%o = %d.\n", j, j);
	printf("j-i = 0%o = %d.\n", j - i);
	printf("j - i < 0\t");
	if ((j-i) < 0)
		printf("true\n");
	else
		printf("false\n");
	k = j - i;
	printf("k=j-i; (k < 0)\t");
	if (k < 0)
		printf("true\n");
	else
		printf("false\n");
	printf("j - i < zero\t");
	if (j - i < zero)
		printf("true\n");
	else
		printf("false\n");
	printf("(j-i < 0) == (j - i < zero)\t");
	if ((j-i < 0) == (j - i < zero))
		printf("true\n");
	else
		printf("false\n");
}