All pastes #637741 Raw Edit

Stuff

public cpp v1 · immutable
#637741 ·published 2007-07-29 04:48 UTC
rendered paste body
#include <stdio.h>typedef unsigned char uint8;typedef unsigned long uint32;#define ARRAY_SIZE 8192 /* Calculate powers of two up to X numbers long */#define LowNb(x) (x&0x0F)#define HighNb(x) ((x&0xF0)>>4)void Print_Number(uint32 cLoop, uint8 number[]){	int i=ARRAY_SIZE-1;	printf("2^%3u ",cLoop);	while(HighNb(number[i])==0 && LowNb(number[i])==0)	{		printf("  ");		i--;	}	if(HighNb(number[i]))		printf("%u%u",HighNb(number[i]),LowNb(number[i]));	else		printf(" %u",LowNb(number[i]));	for(i--; i>-1; i--)		printf("%u%u",HighNb(number[i]),LowNb(number[i]));	printf("\r\n");}int main(int argc, char* arg[]){	uint8 final[ARRAY_SIZE];	uint8 cRet = 0;	uint8 cNb = 0;	uint8 cTmp = 0;	uint32 cLoop = 0;	for(uint32 i=0; i<ARRAY_SIZE; i++)		final[i] = 0;	final[0] = 1;	while ( 1 )	{		cLoop++;		for (uint32 i=0; i<ARRAY_SIZE; i++)		{			cTmp = (LowNb(final[i]))*2 + cRet;			if( cTmp>9 )			{				cRet = 1;				cTmp %= 10;			}			else				cRet = 0;			cNb = cTmp;			cTmp = (HighNb(final[i]))*2 + cRet;			if( cTmp>9 )			{				cRet = 1;				cTmp %= 10;			}			else				cRet = 0;			cNb |= (cTmp<<4);			final[i] = cNb;		}		//Print_Number(cLoop, final); //Uncomment to output every friggin' number (can be huge)		if( HighNb(final[ARRAY_SIZE-1])>5 )			break;	}	Print_Number(cLoop, final);	printf("We have reached 2^%u", cLoop);	return 1;}