All pastes #53688 Raw Edit

Stuff

public text v1 · immutable
#53688 ·published 2006-05-05 09:17 UTC
rendered paste body
#include <stdio.h>

int power(int base, int exp){	//Feed me a base and a power and 'll return the result
if (exp == 0)
	return(1);
else
	return(base * (power(base, exp - 1)));
}



int main()
{
while(1){
char val[14];				//The string I read
unsigned long int value;		//The value i read from said stringval
int i;					//Loop Counter
int j;					//Nested Loop Counter
int k = 0;				//Free counter
int newval[8];				//The 8 values of which I will set the final four bits

for (i = 0; i < 8; ++i)			//Initialize array
	newval[i] = 0;


//GET DATA//
printf("Gimme a value and I'll devide it into 8 4-bit pieces.\n");
fgets(val,sizeof(val),stdin);
sscanf(val,"%d",&value);

//PRINT IT AS 32 CONSECUTIVE BITS//
printf("The value in binary looks like\n",value);
for (i = 0; i < 32; ++i){				//increment while we arent at the last bit
	if ((value & (0x80000000 >> i)) != 0)		//test against known 32 bit value of 1 followed by 31 0's shifted as needed
		printf("1");				//print 1 if there is a bit there
	else
		printf("0");				//else print 0
}

printf("\n");
printf("\n");
printf("\n");

printf("Now I'll divide it into 8 groups of 4-bits.\n");

for (i = 0; i < 32; ++i){					//increment to last bit
	for (j = 0; j < 4; ++j){				//increment four bits
		if ((value & (0x80000000 >> (i + j))) != 0){	//test again	
			printf("1");				//print
			newval[k] += power(2,4 - (j + 1));	//set array based on bit we found
		}
		else
			printf("0");
	}
	printf(" = %d\n",newval[k]);				//print what those 4 bits = and new line for next four
	i += (j - 1);						//add the bits we counted in j already to i
	++k;							//check the next value in the array after this loop ends
}
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");

}
return (0);
}